溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle在一臺機器上搭建dataguard

發(fā)布時間:2020-08-18 00:38:50 來源:ITPUB博客 閱讀:231 作者:kakaxi9521 欄目:關系型數(shù)據(jù)庫
這兩天找了臺機器搭建dataguard。
1. 環(huán)境準備。
操作系統(tǒng)
[oracle ~]$ lsb_release -a 
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 6.8 (Santiago)
Release:        6.8
Codename:       Santiago
數(shù)據(jù)庫版本

SQL> select instance_name,version from v$instance;
INSTANCE_NAME    VERSION
---------------- -----------------
dgtest1          11.2.0.4.0
在機器上新建實例為dgtest1的數(shù)據(jù)庫。
2. 主庫上強記日志。
alter database force logging;

3. 給standby 數(shù)據(jù)庫創(chuàng)建密碼文件,由于是在一臺機器上,可以直接將主庫的密碼文件copy 來用。
[oracle@bdev dbs]$ ls -l orapwdg*
-rw-r----- 1 oracle oinstall 1536 Oct 18 17:08 orapwdgtest1
-rw-r----- 1 oracle oinstall 1536 Oct 19 13:51 orapwdgtest2

4. 在主庫創(chuàng)建pfile。
create pfile='/home/oracle/pfiledgtest1.ora' from spfile;

5.編輯pfiledgtest.ora文件。
[oracle ~]$ more pfiledgtest1.ora 
dgtest1.__db_cache_size=3338665984
dgtest1.__java_pool_size=67108864
dgtest1.__large_pool_size=83886080
dgtest1.__oracle_base='/ulic/app/oracle'#ORACLE_BASE set from environment
dgtest1.__pga_aggregate_target=2147483648
dgtest1.__sga_target=4294967296
dgtest1.__shared_io_pool_size=0
dgtest1.__shared_pool_size=771751936
dgtest1.__streams_pool_size=0
*.audit_file_dest='/ulic/app/oracle/admin/dgtest1/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/ulic/oradata/dgtest1/control01.ctl','/ulic/app/oracle/fast_recovery_area/dgtest1/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='dgtest1'
*.db_recovery_file_dest='/ulic/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4385144832
*.diagnostic_dest='/ulic/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=dgtest1XDB)'
*.log_archive_format='%t_%s_%r.arc'
*.open_cursors=300
*.pga_aggregate_target=2147483648
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=4294967296
*.undo_tablespace='UNDOTBS1'

#######需要添加的內(nèi)容
DB_NAME=dgtest1
DB_UNIQUE_NAME=dgtest1
LOG_ARCHIVE_CONFIG='DG_CONFIG=(dgtest1,dgtest2)'
LOG_ARCHIVE_DEST_1=
 'LOCATION=/ulic/archivelog/dgtest1/
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=dgtest1'
LOG_ARCHIVE_DEST_2=
 'SERVICE=dgtest2 ARCH ASYNC NOAFFIRM
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) 
  DB_UNIQUE_NAME=dgtest2'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
[oracle~]$ 

6. 修改完成后將主庫起來
SQL> startup pfile='/home/oracle/pfiledgtest1.ora';
ORACLE instance started.
Total System Global Area 4275781632 bytes
Fixed Size                  2260088 bytes
Variable Size             939525000 bytes
Database Buffers         3321888768 bytes
Redo Buffers               12107776 bytes
Database mounted.
Database opened.
SQL>

7. 確定修改完pfile,數(shù)據(jù)庫還能正常起來后將數(shù)據(jù)庫給down下來。(這里用來給數(shù)據(jù)庫做冷備)測試環(huán)境,所以能直接起停。

8. 創(chuàng)建standby數(shù)據(jù)庫,在oradata目錄下新建dgtest2目錄。
[oracle@oradata]$ pwd
/ulic/oradata
[oracle@bdev oradata]$ ls -l
total 8
drwxr-x--- 2 oracle oinstall 4096 Oct 18 17:07 dgtest1
drwxr-xr-x 2 oracle oinstall 4096 Oct 19 11:10 dgtest2

9. 將dgtest1目錄下的datafile和log復制到dgtest2目錄下。
[oracle@bdev dgtest2]$ ls -l
total 1561220
-rw-r----- 1 oracle oinstall  52429312 Oct 19 13:53 redo01.log
-rw-r----- 1 oracle oinstall  52429312 Oct 19 13:53 redo02.log
-rw-r----- 1 oracle oinstall  52429312 Oct 19 13:53 redo03.log
-rw-r----- 1 oracle oinstall 555753472 Oct 19 14:19 sysaux01.dbf
-rw-r----- 1 oracle oinstall 775954432 Oct 19 14:19 system01.dbf
-rw-r----- 1 oracle oinstall  30416896 Oct 19 11:05 temp01.dbf
-rw-r----- 1 oracle oinstall  73408512 Oct 19 14:19 undotbs01.dbf
-rw-r----- 1 oracle oinstall   5251072 Oct 19 14:19 users01.dbf

10. 主庫開庫生成standby 控制文件,并copy到dgtest2目錄下,并復制兩份到control01.ctl, control02.ctl。
alter database create standby controlfile as '/ulic/oradata/dgtest2/control.std';

[oracle@dgtest2]$ ls -l 
total 1561220
-rw-r----- 1 oracle oinstall   9748480 Oct 19 15:48 control01.ctl
-rw-r----- 1 oracle oinstall   9748480 Oct 19 15:48 control02.ctl
-rw-r----- 1 oracle asmadmin   9748480 Oct 19 11:08 control.std
-rw-r----- 1 oracle oinstall  52429312 Oct 19 13:53 redo01.log
-rw-r----- 1 oracle oinstall  52429312 Oct 19 13:53 redo02.log
-rw-r----- 1 oracle oinstall  52429312 Oct 19 13:53 redo03.log
-rw-r----- 1 oracle oinstall 555753472 Oct 19 14:19 sysaux01.dbf
-rw-r----- 1 oracle oinstall 775954432 Oct 19 14:19 system01.dbf
-rw-r----- 1 oracle oinstall  30416896 Oct 19 11:05 temp01.dbf
-rw-r----- 1 oracle oinstall  73408512 Oct 19 14:19 undotbs01.dbf
-rw-r----- 1 oracle oinstall   5251072 Oct 19 14:19 users01.dbf

11. 復制一份pfiledgtest1.ora到pfiledgtest2.ora,并修改內(nèi)容。
[oracle@~]$ more pfiledgtest2.ora
dgtest2.__db_cache_size=3338665984
dgtest2.__java_pool_size=67108864
dgtest2.__large_pool_size=83886080
dgtest2.__oracle_base='/ulic/app/oracle'#ORACLE_BASE set from environment
dgtest2.__pga_aggregate_target=2147483648
dgtest2.__sga_target=4294967296
dgtest2.__shared_io_pool_size=0
dgtest2.__shared_pool_size=771751936
dgtest2.__streams_pool_size=0
*.audit_file_dest='/ulic/app/oracle/admin/dgtest2/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/ulic/oradata/dgtest2/control01.ctl','/ulic/oradata/dgtest2/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_recovery_file_dest='/ulic/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4385144832
*.diagnostic_dest='/ulic/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=dgtest2XDB)'
*.log_archive_format='%t_%s_%r.arc'
*.open_cursors=300
*.pga_aggregate_target=2147483648
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=4294967296
*.undo_tablespace='UNDOTBS1'


DB_NAME=dgtest1
DB_UNIQUE_NAME=dgtest2
LOG_ARCHIVE_CONFIG='DG_CONFIG=(dgtest1,dgtest2)'
LOG_ARCHIVE_DEST_1=
 'LOCATION=/ulic/archivelog/dgtest2/
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=dgtest2'
LOG_ARCHIVE_DEST_STATE_1=ENABLE


FAL_SERVER=dgtest1
FAL_CLIENT=dgtest2
DB_FILE_NAME_CONVERT='/ulic/oradata/dgtest1','/ulic/oradata/dgtest2'
LOG_FILE_NAME_CONVERT='/ulic/oradata/dgtest1','/ulic/oradata/dgtest2' 
STANDBY_FILE_MANAGEMENT=AUTO

12. 配置監(jiān)聽。

DGTEST1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = bdev)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dgtest1)
    )
  )

DGTEST2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.18.1.123)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dgtest2)
    )
  )

13.啟動備庫到mount狀態(tài)。

SQL> startup mount pfile='/home/oracle/pfiledgtest2.ora';
ORACLE instance started.
Total System Global Area 4275781632 bytes
Fixed Size                  2260088 bytes
Variable Size             939525000 bytes
Database Buffers         3321888768 bytes
Redo Buffers               12107776 bytes
Database mounted.

查看備庫身份
SQL> select database_role from v$database;
DATABASE_ROLE
----------------
PHYSICAL STANDBY
查看主庫身份
SQL> select database_role from v$database;
DATABASE_ROLE
----------------
PRIMARY
14. 從庫進行standby recover 開始應用日志。
alter database recover managed standby database disconnect from session;
15.切換日志驗證是否能正常傳輸。






向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI