在服務器端配置listener.ora和tnsnames.ora
修改lisnter.ora和tnsnames.ora文件,以增加listener.
這一部分,RAC環境和非RAC環境沒有區別,可以參考oracle的文檔.
可以一個listener給三個instance服務,也可以啟動三個listener給三個instance服務.
我啟動了三個listener.
Listener.ora
LSNR1 =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=your_ip_or_name)(PORT=1521)))
LSNR2 =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=your_ip_or_name)(PORT=1522)))
LSNR3 =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=your_ip_or_name)(PORT=1523)))
tnsnames.ora
lsnr1=(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=your_ip_or_name)(PORT=1521)))
lsnr2=(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=your_ip_or_name)(PORT=1522)))
lsnr3=(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=your_ip_or_name)(PORT=1523)))
將your_ip_or_name替換為你的IP地址或者hostname.
Rac.test.com替換為你init.ora文件中設置的db_name.db_domain
啟動三個listener.
$ lsnrctl start lsnr1
$ lsnrctl start lsnr2
$ lsnrctl start lsnr3
創建數據庫
可以運行dbca用圖形界面來創建,也可以用命令行來創建.
因為以前沒有創建過集群下的數據庫,因此我用圖形界面來創建腳本,修改后用命令行來創建.
先確認ORACM和GSD已經啟動:
$ ps -ef | grep oracm
root 3056 1 0 10:50 pts/1 00:00:00 oracm
root 3057 3056 0 10:50 pts/1 00:00:00 oracm
root 3059 3057 0 10:50 pts/1 00:00:00 oracm
root 3060 3057 0 10:50 pts/1 00:00:00 oracm
root 3061 3057 0 10:50 pts/1 00:00:00 oracm
root 3062 3057 0 10:50 pts/1 00:00:00 oracm
root 3063 3057 0 10:50 pts/1 00:00:00 oracm
root 3064 3057 0 10:50 pts/1 00:00:00 oracm
root 3065 3057 0 10:50 pts/1 00:00:00 oracm
root 3338 3057 0 11:36 pts/1 00:00:00 oracm
root 3362 3057 0 11:36 pts/1 00:00:00 oracm
oracle 3482 2932 0 11:38 pts/1 00:00:00 grep oracm
$ gsdctl stat
GSD is running on the local node
然后運行dbca啟動數據庫配置助手.
在歡迎畫面中,選擇Oracle cluster database, 然后一路繼續就可以了.
在最后的總結畫面上,可以選擇創建數據庫,也可以選擇創建腳本.我選擇了創建腳本.
手工修改腳本為自己想要的樣子,然后跟非集群環境一樣手工創建數據庫.數據文件使用本地管理,不用數據字典管理.并創建缺省的撤消表空間(undo tablespace)和臨時表空間.
注意:
根據我的經驗,SGA太小,在創建數據字典的時候會失敗,因此SGA可以大一些.但因為是集群,需要啟動多個instance,所以在數據字典創建完以后,即catalog.sql,catproc.sql,catclust.sql運行完以后,需要將SGA改小一點.
修改init.ora文件,并拷貝到$ORACLE_HOME/dbs下,改名字為initrac.ora.
我是一個instance對應一個listener.也可以一個listener響應多個instnce.
其余參數可以自己根據自己的情況進行設置,以下是cluster的參數:
undo_management=AUTO
undo_retention=10800
cluster_database=true
cluster_database_instances=5
rac1.instance_name=rac1
rac1.instance_number=1
rac1.local_listener=lsnr1
rac1.thread=1
rac1.undo_tablespace=UNDOTBS1
rac2.instance_name=rac2
rac2.instance_number=2
rac2.local_listener=lsnr2
rac2.thread=2
rac2.undo_tablespace=UNDOTBS2
rac3.instance_name=rac3
rac3.instance_number=3
rac3.local_listener=lsnr3
rac3.thread=3
rac3.undo_tablespace=UNDOTBS3
如果要多個instance都由一個listener來響應,則改以下兩行:
rac2.local_listener=lsnr1
rac3.local_listener=lsnr1
注意:
盡管數據庫名字叫rac,但啟動的實例名字不能叫rac.我將ORACLE_SID分別設置成了rac1,rac2,rac3.
然后啟動第一個實例,創建數據庫:
$ export ORACLE_SID=rac1
$ sqlplus /nolog
SQL*Plus: Release 9.2.0.4.0??亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb