oracle 开启归档日志

windows

开启归档日志
1 运行cmd
2 sqlplus / as sysdba
3 sql> archive log list; #查看是不是归档方式,如果有enable或启动则表名已开启存档模式
4 sql> alter system set log_archive_start=true scope=spfile; #启用主动归档,10以下版本需要开
启此功能 11及以上不要执行此语句
5 sql> show parameter recovery; #查看归档日志目录,归档日志放在默认目录就可,如果要更改目录先创
建目录再更改配置
6 sql> alter system set db_recovery_file_dest_size=50G #设置归档日志大小
7 sql> alter system set db_recovery_file_dest='E:/XXX/XXX' scope=spfile; #可以不设置,用4
默认配置
8 sql> alter system set log_archive_format='arch_%d_%t_%r_%s.arc' #设置归档日记款式,可不设
置 
9 sql> shutdown immediate; 
10 sql> startup mount; #打开控制文件,不打开数据文件 
11 sql> alter database archivelog; #将数据库切换为归档模式 
12 sql> alter database open; #将数据文件打开 
13 sql> archive log list; #查看此时是否处于归档模式 
14 #查询以确定数据库位于archivelog模式中且归档过程正在运行 
15 sql> select log_mode from v$database; 
16 sql> select archiver from v$instance; 
17 #日志切换 
18 sql> alter system switch logfile; // alter system archive log current;
19 #在oracle情况中运行如下查询: 
20 sql> select name from v$archived_log;
21 或 SQL>select log_mode from v$database;
22 如果为log_mode值为ARCHIVELOG则表示已成功归档
创建表空间
创建用户绑定表空间
用户授权(flinkuser改为自己用户名)
1 grant connect, resource,dba to spt_orcl;
2 GRANT CREATE SESSION TO flinkuser;
3 GRANT SET CONTAINER TO flinkuser;
4 GRANT SELECT ON V_$DATABASE to flinkuser;
5 GRANT FLASHBACK ANY TABLE TO flinkuser;
6 GRANT SELECT ANY TABLE TO flinkuser;
7 GRANT SELECT_CATALOG_ROLE TO flinkuser;
8 GRANT EXECUTE_CATALOG_ROLE TO flinkuser;
9 GRANT SELECT ANY TRANSACTION TO flinkuser;
10 GRANT LOGMINING TO flinkuser;
11
12 GRANT CREATE TABLE TO flinkuser;
13 -- need not to execute if set scan.incremental.snapshot.enabled=true(default)
14 GRANT LOCK ANY TABLE TO flinkuser;
15 GRANT ALTER ANY TABLE TO flinkuser;
16 GRANT CREATE SEQUENCE TO flinkuser;
17
18 GRANT EXECUTE ON DBMS_LOGMNR TO flinkuser;
19 GRANT EXECUTE ON DBMS_LOGMNR_D TO flinkuser;
20
21 GRANT SELECT ON V_$LOG TO flinkuser;
22 GRANT SELECT ON V_$LOG_HISTORY TO flinkuser;
23 GRANT SELECT ON V_$LOGMNR_LOGS TO flinkuser;
24 GRANT SELECT ON V_$LOGMNR_CONTENTS TO flinkuser;
25 GRANT SELECT ON V_$LOGMNR_PARAMETERS TO flinkuser;
26 GRANT SELECT ON V_$LOGFILE TO flinkuser;
27 GRANT SELECT ON V_$ARCHIVED_LOG TO flinkuser;
28 GRANT SELECT ON V_$ARCHIVE_DEST_STATUS TO flinkuser;
修改想要增量(补充)日志的库和表
1 #要增量日志的库
2 ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
3 #要增量日志的表,将HEALTHEHR.EHR_ANTENATAL_RECORD改为自己配置
4 ALTER TABLE HEALTHEHR.EHR_ANTENATAL_RECORD ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
5 ...
6 ...
7 ...
8 #修改数据表空间开始同步
9 alter tablespace healthehr begin backup;
日志查看
1 show parameter recovery #查看归档日志目录信息
2 查询归档日志占比
3 select * from v$flash_recovery_area_usage;
4 查看日志使用情况
5 select * from v$recovery_file_dest;
关闭归档日志
1 shutdown immediate;
2 startup mount;
3 alter database noarchivelog;
4 alter database open;
如果报ORA-01125: Ϟ·¨½㾩 »ָ´ - τ¼þ 8 ʨ׃j» 5
6 ORA-01110: ˽¾ގļþ 8: '/data/oracle/healthehr/healthehr.dbf'
7 先关闭表空间的归档日志
8 alter tablespace healthehr end backup;
其它
1 archive log stop; #关闭日志归档
2 archive log start; #开启日志归档
3 archive log list; #查看日志是否归档
4 show parameters; 
5 show parameters log_archive_start; #11以上不需要开启
6 show parameters log_archive_max_process; #归档进程数 
7 alter system set log_archive_max_process=5; #将归档进程数改为5 
8 select * from v$bgprocess; #检察后台进程
重启电脑或重启归档日志后执行
 
归档日志删除(要及时清理过期归档日志)
处理归档日志物理文件和rman文件不一致 报错ora-03013
1 查看归档日志占比
2 select * from v$flash_recovery_area_usage;
3 1.清除硬盘上的归档日志 #注意不要删掉CONTROL02.CTL文件
4 2.通过rman命令删除从物理文件已删除但记录在rman中的归档日志:
5 在cmd窗口切换rman命令:
6 rman target /
7 切换到rman命令后检查归档日志是否失效:
8 rman> crosscheck archivelog all;
9 删除失效归档日志,即删除物理文件已丢失但记录在rman中的归档日志:
10 rman> delete expired archivelog all;
11 删除所有归档日志(慎用):
12 rman> delete archivelog all;
13 退出
14 rman> exit;
重启电脑或重启归档日志后执行
1 同步归档日志
2 在cmd窗口切换rman命令:
3 rman target /
4 切换到rman命令后检查归档日志是否失效:
5 rman> crosscheck archivelog all;
6 删除失效归档日志,即删除物理文件已丢失但记录在rman中的归档日志:
7 rman> delete expired archivelog all;
8 退出
9 rman> exit;
10
11 在cmd窗口切换sql命令:
12 archive log list; #查看此时是否处于归档模式
13 sql> alter database archivelog; #将数据库切换为归档模式 
14 sql> alter database open; #将数据文件打开 
15 #日志切换 
16 sql> alter system switch logfile; // alter system archive log current;
17 SQL>select log_mode from v$database;
18 如果为log_mode值为ARCHIVELOG则表示已成功归档

linux

linux上相关配置参考window配置修改,
alter system set db_recovery_file_dest='/XXX/XXX' scope=spfile; 更改归档日志目录时要用
chmod命令赋予目录相应权限备份好原始的配置文件如:pfile spfile initorcl.ora 文件,防止操作失败时数无法恢复
参考:https://ververica.github.io/flink-cdc-connectors/master/content/connectors/oracle-cdc.
html
 
posted @ 2024-10-15 13:33  leolzi  阅读(161)  评论(0编辑  收藏  举报