oracle 12c创建归档,实测创建 Oracle 12C Dataguard
Oracle 12C Dataguard
環境:centOS 6.4 64bit? ?oracle 12C 12.1.0.1.0 - 64bit
主庫:10.168.9.52? ?sid=bbc??db_unique_name=bbc
備庫:10.168.9.53? ?sid=bbc??db_unique_name=abc
主庫配置:
1.數據庫修改為歸檔模式? ?查看:archive log list;
2.參數log_archive_start已經過時,不需要設置,設置后啟動數據庫會報?ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance(有過時或廢棄的參數被使用指定) ?但是不影響使用
alter system reset log_archive_start?取消該參數設置
3.數據庫開啟強制日志功能,即所有操作都產生日志,以便將主庫所有的操作全部傳給備庫使用 : alter database force logging; select name,force_logging from v$database;
4.確認當主庫添加或刪除數據文件時,備庫也做同樣的的操作:
Alter system set standby_file_management=’AUTO’;
5.確認參數 remote_login_passwordfile 為exclusive 或shared 使用密碼文件做驗證 此參數默認為exclusive,如果不是,請修改
Alter system set remote_login_passwordfile =exclusive scope=spfile;
6.設置db_unique_name 通常主庫該值和SID一直,如沒有該值,請設置:
Alter system set db_unique_name=bbc scope=spfile;
7.開啟閃回功能:可以使數據庫閃回到以前的某一點,可以使主庫閃回到故障前,然后將其轉換為備庫。如果沒有閃回,就必須重建庫。
Alter system set db_recovey_file_dest=’快速回復區目錄’ 閃回區位置
Alter system set db_recovey_file_dest_size=’300G’; 閃回區大小
Alter database flashback on ;
Select flashback_on from v$database ;
8.配置主備庫的監聽,使兩臺服務器可以相互通信:
主庫修改listener.ora文件 動態靜態監聽都要配置 (備庫啟動后是在mount狀態下,不能自動注冊監聽,需要靜態監聽 修改后監聽需要重啟)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=orcl65)
(SID_NAME=orcl65)
(ORACLE_HOME=/18_app/12c/db_base/db_home/)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.18)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
主庫tnsnames.ora文件:
ORCL65 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.18)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl65)
)
)
ORCL66 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.19)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl66)
)
)
備庫修改listener.ora 動態靜態監聽都要配置 修改后監聽需要重啟
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=orcl66)
(SID_NAME=orcl66)
(ORACLE_HOME=/19_app/12c/db_base/db_home/)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.19)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
備庫tnsnames.ora文件:
ORCL65 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.18)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl65)
)
)
ORCL66 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.19)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl66)
)
)
~
9.修改歸檔位置:
Alter system set log_archive_dest_1=’location=/u01/app/archive/archive_bbc_loc/ valid_for=(all_logfiles,all_roles) db_unique_name=bbc ’
指定歸檔位置用于所有角色所有數據庫的日志文件且db_unique_name=bbc包括將來主轉為備后的備用日志文件(注意不是在線日志文件,是主庫用日志寫進程直接傳過來并保存到standby_log中的日志文件),并且如果想在備庫進行備份同時備歸檔日志的話,必須使用all_logfiles
Alter system set log_archive_dest_10=’service=abc arch valid_for=(online_logfiles,primary_role) db_unique_name=abc’;
語句意思是:如果這是主庫,就使用服務名為abc 傳輸在線歸檔日志到目標庫abc (這里使用的是歸檔進程同步傳輸的,還有其他的模式 )
不要配置standby_archive_dest參數,官方已經棄用,可能會報錯
部分參數說明:online_logfiles(在線日志) satandby_logfiles(備用日志) all_logfiles(所有日志) primary_role(主庫角色) standby_role(備庫角色) all_roles(所有角色)
10.設置參數fal_server 是指傳輸出現問題后,備庫到哪里去找缺少的歸檔日志 參數fal_client在11G已經棄用,不用設置了
Alter system set fal_server = ‘abc’;
11. 打開主庫的dataguard 開關:
;
備庫設置
1.創建備庫必要的目錄,最少要建立主庫所有數據文件的目錄,$db_base/fast_recovery_area/bbc/所有目錄, $db_base/oradata/bbc/所有目錄,$db_base/admin/bbc/adump
2.停主庫:在mount下生成pfile??create pfile from spfile
生成備庫控制文件 alter database create standby controlfile as ‘/路徑/文件名’;
并且將新生成的參數文件,控制文件,密碼文件,所有數據文件,日志文件全部拷貝到備庫的響應目錄下(我也不想停庫啊之前也用rman 恢復過,備庫不能open read only,報有數據文件需要恢復,搞不定啊—問題解決,后面有筆記)
給參數文件和密碼文件改名
3.修改參數文件:將部分bbc修為abc,其中db_name=‘bbc’和dispatchers='(PROTOCOL=TCP) (SERVICE=bbcXDB)不用修改,
修改所有路徑為備庫的路徑
如果數據文件路徑有修改需要添加參數db_file_name_convert=‘原路徑1’,‘新路徑1’,‘原路徑2’,‘新路徑2’,‘原路徑3’,‘新路徑3’??所有不一樣的數據文件路徑都要添加,要成對出現
log_file_name_convert=‘原路徑1’,‘新路徑1’,‘原路徑2’,‘新路徑2’,‘原路徑3’,‘新路徑3’??所有不一樣的日志文件路徑都要添加,要成對出現
添加 db_unique_name='abc'
4.生成spfile 重新啟動備庫監聽,啟動備庫到mount, 重新啟動主庫監聽,啟動主庫(并確保都是使用的spfile)
備庫啟動恢復模式:alter database recover managed standby database disconnect from session
備庫關閉恢復模式: alter database recover managed standby database cancel;
備庫只讀模式打開數據庫:alter database open read only;
備庫啟動恢復模式:alter database recover managed standby database disconnect from session;
SQL> select log_mode,open_mode ,protection_mode, database_role from v$database;
LOG_MODE? ???OPEN_MODE? ? ? ? ? ? ? ?? ?PROTECTION_MODE? ?? ?DATABASE_ROLE
------------ -------------------- -------------------- ----------------
ARCHIVELOG? ?READ ONLY WITH APPLY MAXIMUM PERFORMANCE??PHYSICAL STANDBY
至此,初步的dataguard 創建完成,測試以及模式轉換待續
備庫用主庫rman 備份恢復:
1.創建備庫必要的目錄,最少要建立主庫所有數據文件的目錄,$db_base/fast_recovery_area/bbc/所有目錄, $db_base/oradata/bbc/所有目錄,$db_base/admin/bbc/adump
(/19_app/12c/db_base/fast_recovery_area/orcl66)
(/19_app/12c/db_base/fast_recovery_area/ORCL66/四個文件夾 archivelog,autobackup,flashback, onlinelog)
(/19_app/12c/db_base/oradata/orcl66/兩個文件夾orcl_pdb1,pdbseed)
(/19_app/12c/db_base/admin/orcl66/adump)
2.configure channel device type disk format '/home/oracle/rmanbk/%d_%I_%s_%p_%T.bkp';修改備份路徑和名字
3.在主庫用rman備份:backup as compressed backupset database include current controlfile for standby plus archivelog; 在主庫生成pfile ,并將主庫的備份,pfile,口令文件 一起拷貝到備庫相同的文件夾下。
4.將pfile,口令文件改名并拷貝到dbs下,修改參數文件
注意參數文件中的參數: MEMORY_TARGET(將其注釋掉, 會報ORA-00845錯誤,主庫的內存設置不一定適合從庫)??啟動備庫到nomount
5.在主庫登陸rman:rman target / auxiliary sys/bbcBBC2014@ccb
(在備庫做:rman target sys/bbcBBC2014@bbc auxiliary sys/bbcBBC2014@ccb)
duplicate target database for standby
6.起動備庫到mount 并open read only
7.開啟恢復模式:alter database recover managed standby database? ?disconnect from session;
8.查看模式及級別:SQL> select log_mode,open_mode ,protection_mode, database_role from v$database;
LOG_MODE? ???OPEN_MODE? ? ? ? ? ? ? ?? ?PROTECTION_MODE? ?? ?DATABASE_ROLE
------------ -------------------- -------------------- ----------------
ARCHIVELOG? ?READ ONLY WITH APPLY MAXIMUM PERFORMANCE??PHYSICAL STANDBY
測試數據,正常!
添加另一個新的DG:
主庫添加修改:Alter system set log_archive_config ='dg_config=(orcl65,orcl66,orcl67)';
alter system set log_archive_dest_9='service=orcl67 lgwr sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=orcl67';
從庫按之前操作
從庫可以是新庫,也可以沒有庫,沒有庫也要添加兩個監聽文件!!!
總結
以上是生活随笔為你收集整理的oracle 12c创建归档,实测创建 Oracle 12C Dataguard的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle测试表什么名字,Oracle
- 下一篇: oracle decode 01427,