`
wanglihu
  • 浏览: 909676 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江
社区版块
存档分类

测试版-物理standby创建

阅读更多
1.编辑/etc/hosts文件
  # vi /etc/hosts  添加如下内容
  127.0.0.1 localhost.localdomain localhost
  192.168.1.188 mynode1
  192.168.1.189 mynode2
------------------------------------------------
2.安装oracle数据库软件
  在mynode1和mynode2两台服务器上安装oracle软件
  在两台服务器上分别执行如下命令,确保两台主机可以ping通
  # ping mynode1
  # ping mynode2
------------------------------------------------
3.dbca创建数据库
  在mynode1服务器上新建数据库global_name=test
  创建过程中:
      1)不选择EM
      2)不选择闪回,
      3)选择归档,并点击edit archive mode parameters
      4)编辑archive log destinations,输入归档文件位置/oracle/oradata/test/
        单击ok
      5)其他默认即可
------------------------------------------------
4.Oracle Net Services配置
  mynode1上执行:
  $ netca
    配置监听(port 1521)
    配置本地服务名1:
     db_name=test
     IP=192.168.1.188
     local__service_name=lsnode1 
    配置本地服务名2     
     service_name=test
     IP=192.168.1.189
     local_name=lsnode2
------------------------------------------------
  mynode2上执行:
  $ netca
    配置监听(port 1521)
    配置本地服务名1:
     db_name=test
     IP=192.168.1.188
     local__service_name=lsnode1 
    配置本地服务名2     
     service_name=test
     IP=192.168.1.189
     local_name=lsnode2
-------------------------------------------------
5.保证网络连接通畅
   在两台服务器上分别执行如下命令:
   $ sqlplus system/oracle@lsnode1
   假如都能成功进入,则继续。
-------------------------------------------------
6.在mynode1上执行:
  1)修改数据库状态
  $ sqlplus /nolog
  SQL> conn / as sysdba
  SQL> alter database force logging;
  SQL> create pfile from spfile;
  2)编辑pfile文件
  $ vi /oracle/product/10.2.0/dbs/inittest.ora   添加如下内容    
SERVICE_NAMES=test
DB_UNIQUE_NAME=lsnode1
log_archive_dest_1='LOCATION=/oracle/oradata/test/arch valid_for=(all_logfiles,all_roles) db_unique_name=lsnode1'
LOG_ARCHIVE_DEST_2='SERVICE=lsnode2 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=lsnode2'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
fal_server=lsnode2
fal_client=lsnode1
standby_file_management=auto
#log_archive_dest_3='LOCATION=/oracle/oradata/test/arch1 valid_for=(STANDBY_LOGFILES,STANDBY_ROLE) db_unique_name=lsnode1'
#LOG_ARCHIVE_DEST_STATE_3=ENABLE
  3)检查是否归档
  SQL>archive log list
  要求数据库日志模式为归档模式,并且自动归档enable
  4)为备库创建控制文件
   SQL> shutdown immediate;
   SQL> STARTUP MOUNT;
   SQL> alter database create standby controlfile as  '/oracle/standbycontrol.ctl';
   SQL> shutdown immediate;
  5)删除spfile文件
    $rm -rf /oracle/product/10.2.0/spfiletest.ora
  6)将所有的密码文件,初始化参数文件拷贝到/oracle目录                       
    $ cp /oracle/product/10.2.0/inittest.ora /oracle
    $ cp /oracle/product/10.2.0/orapwtest /oracle
  7)上传mynode1的文件到mynode2的对应位置
    $ cd /oracle
    $ scp -r admin/ oradata/  inittest.ora orapwtest standbycontrol.ctl oracle@mynode2:/oracle               
7.在mynode2上执行:
  $ cd /oracle/oradata/test
  $ rm -f control0*
  $ mv /oracle/standbycontrol.ctl  control01.ctl               
  $ cp control01.ctl control02.ctl
  $ cp control01.ctl control03.ctl
  $ mv /oracle/inittest.ora /oracle/product/10.2.0/dbs/            
  $ mv /oracle/orapwtest    /oracle/product/10.2.0/dbs/
  $ vi inittest.ora
SERVICE_NAMES=test
DB_UNIQUE_NAME=lsnode2
log_archive_dest_1='LOCATION=/oracle/oradata/test/arch valid_for=(all_logfiles,all_roles) db_unique_name=lsnode2'
LOG_ARCHIVE_DEST_2='SERVICE=lsnode1 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=lsnode1'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
fal_server=lsnode1
fal_client=lsnode2
standby_file_management=auto
#log_archive_dest_3='LOCATION=/oracle/oradata/test/arch1 valid_for=(STANDBY_LOGFILES,STANDBY_ROLE) db_unique_name=lsnode2'
#LOG_ARCHIVE_DEST_STATE_3=ENABLE
8.启动监听程序
  保证两台数据库未启动,在mynode1和mynode2两台服务器上执行如下命令: 
  $ lsnrctl start
9.启动mynode1主库
  $ sqlplus / as sysdba
SQL>startup
10.启动mynode2备库
  $ sqlplus / as sysdba
  $ startup mount           
  $ alter database recover managed standby database disconnect from session;(日志应用)
到此物理standby创建完成。
11.测试:
mynode1:
  $ sqlplus / as sysdba
  SQL>create tablespace test datafile '/oracle/oradata/test/test_01.dbf' size 100M;
  SQL>select sequence#,applied,first_name,next_time from v$archived_log order by sequence#; 查询日志
  SQL>alter system switch logfile;
  SQL>select process,status,sequence# from v$managed_standby; 查询线程
mynode2:
  $ sqlplus / as sysdba
  SQL>alter database recover managed standby database cancel;(取消日志应用)
  SQL>alter database open;
  SQL>select tablespace_name from user_tablespaces;
    
 





分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics