问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何将oracle数据库 设置为归档模式

发布网友 发布时间:2022-04-23 17:39

我来回答

3个回答

懂视网 时间:2022-04-07 23:48

一 设置为归档方式Sql代码

sql> archive log list;
#查看是不是归档方式
sql> alter system set log_archive_start=true scope=spfile;
#启用主动归档
sql> alter system set log_archive_dest=‘‘location=/oracle/ora9/oradata/arch‘‘ scope=spfile;
#设置归档路径
sql> alter system set log_archive_dest_1=‘‘location=/oracle/ora9/oradata/arch1‘‘ scope=spfile;
sql> alter system set log_archive_dest_2=‘‘location=/oracle/ora9/oradata/arch2‘‘ scope=spfile;
#如果归档到两个位置,则可以通过上边方法实现
sql> alter system set log_archive_format=‘‘arch_%d_%t_%r_%s.log‘‘
#设置归档日记款式
sql> shutdown immediate;
sql> startup mount;
#打开控制文件,不打开数据文件
sql> alter database archivelog;
#将数据库切换为归档模式
sql> alter database open;
#将数据文件打开
sql> archive log list;
#查看此时是否处于归档模式 查询以确定数据库位于archivelog模式中且归档过程正在运行
sql> select log_mode from v$database;
sql> select archiver from v$instance;
Sql代码 日志切换
sql> alter system switch logfile;
这次日志切换将归档写到两个目标地, 即上边的/oracle/ora9/oradata/arch1和/oracle/ora9/oradata/arch1,
要是要对目录确认 在oracle情况中运行如下查询:
sql> select name from v$archived_log;
而后在操作系统中确认查询所列出的文件


二 设置非归档方式Sql代码
sql> archive log list;
#查看是否是归档方式
sql> alter system set log_archive_start=false scope=spfile;
#禁用自动归档
sql> shutdown immediate;
sql> startup mount;
#打开控制文件,不打开数据文件
sql> alter database noarchivelog;
#将数据库切换为非归档模式
sql> alter database open;
#将数据文件打开
sql> archive log list;
#查看此时便处于非归档模式


三 归档相关命令Sql代码
archive log stop;
archive log start;
archive log list;
show parameters;
show parameters log_archive_start;
show parameters log_archive_max_process;
#归档进程数 alter system set log_archive_max_process=5;
#将归档进程数改为5
select * from v$bgprocess;
#检察后台进程

Oracle归档方式设置

标签:

热心网友 时间:2022-04-07 20:56

查看归档状态为非归档
sys@JSL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG

archive状态Disabled
sys@JSL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 2
Current log sequence 4

sys@JSL> select * from v$archive_processes;

PROCESS STATUS LOG_SEQUENCE STAT
---------- ---------- ------------ ----
0 STOPPED 0 IDLE
1 STOPPED 0 IDLE
2 STOPPED 0 IDLE
3 STOPPED 0 IDLE
...
...
29 STOPPED 0 IDLE

修改为归档模式

首先要关闭数据库,启动到mount状态。
sys@JSL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
sys@JSL> startup mount
ORACLE instance started.

Total System Global Area 184549376 bytes
Fixed Size 1218412 bytes
Variable Size 62916756 bytes
Database Buffers 117440512 bytes
Redo Buffers 2973696 bytes
Database mounted.

修改为归档模式
sys@JSL> alter database archivelog;
Database altered.

oracle 9i还要设置log_archive_start 这是个静态参数
alter system set log_archive_start=true scope=spfile;
oracle 10g则不用设置了。

验证修改结果
sys@JSL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG

打开数据库
sys@JSL> alter database open;
Database altered.

设置归档格式
log_archive_format,是设置归档命名规则的静态参数,设置后重启数据库才生效。
对log_archive_dest和log_archive_dest_n指定的归档有效。

常用参数如下
%s log sequence number
%S log sequence number, zero filled
%t thread number
%T thread number, zero filled
%a activation ID
%d database ID
%r resetlogs ID
resetlogs,防止恢复的时候会报错,归档默认文件扩展名是dbf,习惯设置成arc
例如:_%t_%s_%r.arc

sys@JSL> select name from v$database;
NAME
------------------------------
JSL
sys@JSL> alter system set log_archive_format='jsl_%t_%s_%r.arc' scope=spfile;
System altered.
重启数据库才生效。

sys@JSL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 2
Next log sequence to archive 4
Current log sequence 4
sys@JSL> alter system switch logfile;
System altered.

archive变成Enabled,我们没有设置归档目的地,
默认USE_DB_RECOVERY_FILE_DEST使用DB_RECOVERY_FILE_DEST目录,也就是我们常说的闪回目录。
sys@JSL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 3
Next log sequence to archive 5
Current log sequence 5

查看当前日志组
sys@JSL> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
------ ------- --------- -------- -------- --- --------- ------------- -----------------
1 1 5 52428800 1 NO CURRENT 1565953 20101206 17:57:21
2 1 4 52428800 1 YES ACTIVE 1559083 20101206 15:07:00
3 1 3 52428800 1 YES INACTIVE 1534317 20101206 10:44:06

切换日志
alter system archive log current; --先归档再切换
alter system switch logfile; --先切换至于能不能归档再说

sys@JSL> alter system switch logfile;
System altered.

查看已经归档的信息
sys@JSL> select RECID,NAME,DEST_ID,SEQUENCE#,RESETLOGS_CHANGE#,ARCHIVED,STATUS ,BACKUP_COUNT from v$archived_log;

RECID NAME DEST_ID SEQUENCE# RESETLOGS_CHANGE# ARC S BACKUP_COUNT
----- ------------------------------ ---------- ---------- ----------------- --- - ------------
1 /u01/app/oracle/flash_recovery 10 1 1484108 YES A 0
_area/HYJT/archivelog/2010_12_
05/o1_mf_1_1_6hq6z3db_.arc
2 /u01/app/oracle/flash_recovery 10 4 1484108 YES A 0
_area/JSL/archivelog/2010_12_0
6/o1_mf_1_4_6hsdw1mv_.arc
3 /u01/app/oracle/flash_recovery 10 5 1484108 YES A 0
_area/JSL/archivelog/2010_12_0
6/o1_mf_1_5_6hsdx63y_.arc

查看归档进程,开启了三个归档进程
sys@JSL> select * from v$archive_processes;

PROCESS STATUS LOG_SEQUENCE STAT
---------- ---------- ------------ ----
0 ACTIVE 0 IDLE
1 ACTIVE 0 IDLE
2 ACTIVE 0 IDLE
3 STOPPED 0 IDLE
...
...
29 STOPPED 0 IDLE

如果归档进程报错,8i可以使用下面命令尝试解决
archive log stop;
archive log start;

10版本的archive log stop/start及alter system archive log stop/start命令已经不用了,只要在归档模式下就是自动归档模式

设置归档目录
默认的归档目录(Archive destination)是: USE_DB_RECOVERY_FILE_DEST,
如果取消DB_RECOVERY_FILE_DEST参数的设置,就会找standby_archive_dest参数,
默认是'?/dbs/arch'但是没有真实目录存在,所以虽然能开启归档但是不能实现归档。
设置方式:
A: log_archive_dest_n (1-10) 这个参数与B是冲突的,可以设置本地和远程作为归档目标地址。
下面有十个状态参数log_archive_dest_state_n (1-10)与之对应,enable才可用。
例:
log_archive_dest_state_1=DEFER
log_archive_dest_state_2=ENABLE
此参数和log_archive_dest_n参数配对使用,缺省值为ENABLE,如果想停止使用一个归档目录,只需将其对应的log_archive_dest_state_n参数值设置为DEFER。
log_archive_dest_n 其中n为1-5的整数,必需从低到高设置,下面举例说明:
log_archive_dest_1="LOCATION=/jia/arc MANDATORY REOPEN"
log_archive_dest_2="SERVICE=standby_db1 MANDATORY REOPEN=600"
log_archive_dest_3="LOCATION=/jia/arc2 OPTIONAL"
location指的是本地目录。
service是tnsname里指定的名称,可以实现连接到远程。
MANDATORY 关键字说明联机日志文件必须要成功归档以后才能被覆盖。
OPTIONAL 缺省为可选(OPTIONAL),即使归档没有成功也可以覆盖。
在设置时应该至少有一个本地(LOCATION)强制(MANDATORY)归档目录。
REOPEN 关键字说明如果归档不成功时系统要重新尝试归档,缺省每300秒尝试一次直到成功。
reopen可以通过=n来指定尝试的时间间隔,如 log_archive_dest_2中的时间间隔为600秒,
而log_archive_dest_1中的时间间隔为300 秒。
alter system set log_archive_dest_1='location=/xxx/xxx/x/ mandatory reopen=500';

B: log_archive_dest和log_archive_plex_dest 这个参数与A是冲突的,只能设置本地目录,
log_archive_dest可以单独存在,但是log_archive_plex_dest必须依附于log_archive_dest
log_archive_dest这是一个静态参数,设置的时候要带scope=spfile
sys@JSL> alter system set log_archive_dest='';
alter system set log_archive_dest=''
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16018: cannot use LOG_ARCHIVE_DEST with LOG_ARCHIVE_DEST_n or DB_RECOVERY_FILE_DEST
带上scope=spfile参数就不会有上面的报错信息了
sys@JSL> alter system set log_archive_dest='/jia/arc' scope=spfile;
System altered.
如果使用这种方式,则log_archive_dest是强制(MANDATORY)归档目录,而log_archive_plex_dest为可选(OPTIONAL)目录。

C: db_recovery_file_dest 这个参数还有个辅助参数db_recovery_file_dest_size控制大小。

那么着三种方式是否可以同时设置,以及那个方式设置的生效呢?
我们用下图示加以说明:
A(n) B(y) C(y) -> oracle同时归档日志到log_archive_dest和db_recovery_file_dest指定的目录,C采用omf管理管理方式
A(n) B(y) C(n) -> 1份归档B
A(y) B(y) C(n) -> error A与B是冲突的
A(y) B(n) C(y) -> 1份归档A,如果设置了A,C就失效了。

在10g跟开归档跟flashback_on状态无关,但是反过来开数据库闪回功能必须先开归档。设置log_archive_dest以后重启数据库才生效。

热心网友 时间:2022-04-07 22:14

修改oracle为归档模式
1,查看是否为归档模式
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 31
Current log sequence 33
2,关闭数据库
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
3,启动数据库到mount模式
SQL> startup mount;
ORACLE instance started.

Total System Global Area 1224736768 bytes
Fixed Size 2020384 bytes
Variable Size 318770144 bytes
Database Buffers 889192448 bytes
Redo Buffers 14753792 bytes
Database mounted.
4,修改数据库为归档模式
SQL> alter database archivelog;

Database altered.
5,打开数据库库
SQL> alter database open;
SQL> SELECT NAME,created,log_mode FROM v$database;
NAME CREATED LOG_MODE
--------- --------- ------------
ORCL 04-JUN-12 ARCHIVELOG

Database altered.
6,查看归档日志的路径和目录
SQL> show parameter db_recovery_file_dest;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /data/app/oracle/flash_recovery_area
db_recovery_file_dest_size big integer 2G

修改方法:
SQL> alter system set db_recovery_file_dest_size=20g;
SQL> alter system set db_recovery_file_dest='/app/arc';
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...有还,换了另一个支付宝账号,以前的借呗的钱会不会被移动扣?_百度知 ... 哪些是主板型号 哪些是主板型号的 在北京工作三年了,由于平常压力比较大,一直掉头发,怎么改善啊?谢谢! 精神压力大是不是更容易掉发 日常如何预防脱发 我身体素质很差当兵会怎么样?我做俯卧撑只能做几个。 本人姓余,想中间取个博字后面加个什么字好听,男孩。五行缺木_百度... ...的男孩,五行缺木,爸爸姓马,妈妈姓孟,取名马博林可以吗 为什么我这两年变得不喜欢笑,就算觉得好笑也笑不出来了,以前是自己都会... 为什么有时候我会哭着哭着就会笑了没有人逗我笑是自然而然的笑 苏宁任性贷怎么快速的提升额度 Oracle中归档模式的定义 速贷金融就是坑,这个被骗了该怎么办? 谁能告诉我oracle数据库常用命令啊? oracle如何将表的历史数据归档 任性贷申请太火爆排队中是怎么回事? oracle基本命令 Oracle常见的命令 速贷怎么样,在速贷上借款容易审批吗 oracle数据库的常见命令 怎么用儿歌形式播报红烧肉,家长豆腐,广式花菜,开心米饭 粤菜都有什么 广东十大名菜是什么 广州脆皮五花肉烧的做法 港式红烧肉怎么做 粤式)红烧鱼怎做? 粤式红烧排骨的作法 粤式红烧鲈鱼最正宗的做法 广式红烧肉怎么做如何做好吃 广式红烧肉怎么做好吃 怎么在UU速贷申请贷款成功? oracle启动命令 今天在速贷网申请了贷款怎么还不下来 oracle 怎么生成归档日志文件 支付宝上有个前海速贷通我怎么还款- 问一问 oracle 参数 有什么地方可以贷款的? oracle 中用什么命令执行一个带参数的存储过程 我是贷款担保人,法院冻结我微信零钱,怎么办? oracle的shutdown命令有几种参数,各有什么不同? 微粒速贷上面我已经上转了个人信息,他说要打手续费才能提现,这是个*,个人信息已经上转了怎么办? 【求解】Oracle中imp命令 参数含义 家速贷,这款贷款怎么样 oracle中exp命令怎样使用 易借速贷平台怎么样? 如何查看oracle数据库配置参数 单身人士怎么理财,能不能在网上投资? Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令 详细的 详细... 苏宁金融是什么? oracle 存储导入项目名的系统表