标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-00742 ORA-01110 ORA-01555 ORA-01578 ORA-01595 ORA-08103 ORA-600 2131 ORA-600 2662 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (103)
- 数据库 (1,768)
- DB2 (22)
- MySQL (77)
- Oracle (1,609)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (166)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (69)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (591)
- Oracle安装升级 (97)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (86)
- PostgreSQL (30)
- pdu工具 (6)
- PostgreSQL恢复 (9)
- SQL Server (32)
- SQL Server恢复 (13)
- TimesTen (7)
- 达梦数据库 (3)
- 达梦恢复 (1)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (39)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (22)
-
最近发表
- ORA-600 kokiasg1故障分析(obj$中核心字典序列全部被恶意删除)
- ORA-00756 ORA-10567故障数据0丢失恢复
- 数据库文件变成32k故障恢复
- tcp连接过多导致监听TNS-12532 TNS-12560 TNS-00502错误
- 文件系统格式化MySQL数据库恢复
- .sstop勒索加密数据库恢复
- 解决一次硬件恢复之后数据文件0kb的故障恢复case
- Error in invoking target ‘libasmclntsh19.ohso libasmperl19.ohso client_sharedlib’问题处理
- ORA-01171: datafile N going offline due to error advancing checkpoint
- linux环境oracle数据库被文件系统勒索加密为.babyk扩展名溯源
- ORA-600 ksvworkmsgalloc: bad reaper
- ORA-600 krccfl_chunk故障处理
- Oracle Recovery Tools恢复案例总结—202505
- ORA-600 kddummy_blkchk 数据库循环重启
- 记录一次asm disk加入到vg通过恢复直接open库的案例
- CHECKDB 发现了 N 个分配错误和 M 个一致性错误
- 达梦数据库dm.ctl文件异常恢复
- Oracle Recovery Tools修复ORA-00742、ORA-600 ktbair2: illegal inheritance故障
- 可能是 tempdb 空间用尽或某个系统表不一致故障处理
- 11.2.0.4库中遇到ORA-600 kcratr_nab_less_than_odr报错
月归档:十一月 2011
深入理解LOG_ARCHIVE_DEST_n与STANDBY_ARCHIVE_DEST
一、案例引入
朋友的dg配置如下,问我为什么归档日志都放在了use_db_recovery_file_dest
主库 log_archive_dest_1='location=/U01/app/oracle/oradata/bfodb/arch,valid_for=(ONLINE_LOGFILE,ALL_ROLES)' log_archive_dest_2='service=tnsname,ARCH SYNC NOAFFIRM delay=0 OPTIONAL max_failure=0 max_connections=1 reopen=300 register net_timeout=180 valid_for=(online_logfile,primary_role)' standby_archive_dest='location=use_db_recovery_file_dest' 备库 log_archive_dest_1='location=/U01/app/oracle/oradata/bfodb/arch,valid_for=(ONLINE_LOGFILE,ALL_ROLES)' log_archive_dest_2='location=location=use_db_recovery_file_dest,valid_for=(STANDBY_LOGFILE,STANDBY_ROLE)' standby_archive_dest='location=use_db_recovery_file_dest'
我很惯性的回答,直接传输过来的日志放到LOG_ARCHIVE_DEST_n下面,fal_*过来的归档放置在standby_archive_dest中,也没有过多的思考为什么,因为我们的库都是这样的规则,我已经认为是一种准则了。这个规则也整合符合了他们的要求(都在use_db_recovery_file_dest)中,没有仔细的去看他们的配置,当朋友说到valid_for的属性的时候,我感觉有点不对头了。
1)他们的log_archive_dest_1配置的是ONLINE_LOGFILE,这个是备库,所以肯定不会放到这里
2)难道是通过log_archive_dest_2使得直接传输过来的日志放置到了use_db_recovery_file_dest中?让朋友查询v$standby_log,发现他们的库没有使用standby redo logfile,也就是说,log_archive_dest_2不可能用来传输日志了,现在剩下来可以传输日志的,只有standby_archive_dest了。
3)问题解决了,都传输到use_db_recovery_file_dest,因为LOG_ARCHIVE_DEST_n都不能用(只是从排除法证明)
二、问题深入分析
standby_archive_dest和log_archive_dest_*到底有什么关系,在什么情况下传输到对应的目录中?
如果备库利用standby redo log在备库端自动归档,那么归档日志将会被放置到LOG_ARCHIVE_DEST_n 如果备库是利用主库的arch进程传输过来的归档,那么将会被放置到STANDBY_ARCHIVE_DEST 补充说明: 1)主库的LOG_ARCHIVE_DEST_n='service'默认的arch传输方式,primary会远程将archived log传输到standby_archive_dest下 2)fal_*是通过arch传输过来的,所以使用的是STANDBY_ARCHIVE_DEST目录,如果不存在这个目录,就使用LOG_ARCHIVE_DEST_n 3)If both parameters are specified, the STANDBY_ARCHIVE_DEST initialization parameter overrides the directory location specified with the LOG_ARCHIVE_DEST_n parameter. 如果STANDBY_ARCHIVE_DEST和LOG_ARCHIVE_DEST_n两个参数指定,STANDBY_ARCHIVE_DEST初始化覆盖LOG_ARCHIVE_DEST_n目录指定位置参数。 4)If none of the initialization parameters have been specified, then archived redo log files are stored in the default location for the STANDBY_ARCHIVE_DEST initialization parameter. 如果STANDBY_ARCHIVE_DEST和LOG_ARCHIVE_DEST_n都没有配置,将会把归档日志放到STANDBY_ARCHIVE_DEST的默认目录 5)如果STANDBY_ARCHIVE_DEST未配置,而配置了LOG_ARCHIVE_DEST_n,那么产生的归档将放置到LOG_ARCHIVE_DEST_n 6)建议:STANDBY_ARCHIVE_DEST和LOG_ARCHIVE_DEST_n=‘location’的配置相同 7)在11g,已经不建议使用STANDBY_ARCHIVE_DEST,也就是说建议配置dg的时候尽量使用standby redo logfile
发表在 Data Guard
2 条评论
Oracle常用用户权限视图
DBA_SYS_PRIVS 用户所拥有的系统权限
[oracle@ECP-UC-DB1 ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.4.0 - Production on Wed Nov 16 13:26:09 2011 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> create user xff identified by xifenfei; User created. SQL> grant connect to xff; Grant succeeded. SQL> select * from DBA_SYS_PRIVS where grantee='XFF'; no rows selected SQL> REVOKE CONNECT FROM XFF; Revoke succeeded. SQL> grant create session to xff; Grant succeeded. SQL> select * from DBA_SYS_PRIVS where grantee='XFF'; GRANTEE PRIVILEGE ADM ------------------------------ ---------------------------------------- --- XFF CREATE SESSION NO SQL> grant select on chf.t_1 to xff; Grant succeeded. SQL> select * from DBA_SYS_PRIVS where grantee='XFF'; GRANTEE PRIVILEGE ADM ------------------------------ ---------------------------------------- --- XFF CREATE SESSION NO --说明只能查询系统权限,不能查询角色,不能查询用户权限
DBA_SYS_PRIVS 用户所拥有的角色
SQL> grant resource to xff; 授权成功。 SQL> SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE='XFF'; GRANTEE GRANTED_ROLE ADM DEF ------------------------------ ------------------------------ --- --- XFF RESOURCE NO YES
ROLE_SYS_PRIVS 角色所拥有的系统权限
SQL> SELECT * FROM ROLE_SYS_PRIVS WHERE ROLE='CONNECT'; ROLE PRIVILEGE ADM ------------------------------ ---------------------------------------- --- CONNECT CREATE SESSION NO SQL> SELECT * FROM ROLE_SYS_PRIVS WHERE ROLE='RESOURCE'; no rows selected SQL> SELECT * FROM SESSION_ROLES; ROLE ------------------------------ CONNECT SQL> CONN / AS SYSDBA Connected. SQL> SELECT * FROM ROLE_SYS_PRIVS WHERE ROLE='RESOURCE'; ROLE PRIVILEGE ADM ------------------------------ ---------------------------------------- --- RESOURCE CREATE TRIGGER NO RESOURCE CREATE SEQUENCE NO RESOURCE CREATE TYPE NO RESOURCE CREATE PROCEDURE NO RESOURCE CREATE CLUSTER NO RESOURCE CREATE OPERATOR NO RESOURCE CREATE INDEXTYPE NO RESOURCE CREATE TABLE NO 8 rows selected. --很多时候只能使用sysdba(或者具体特定权限)才能够查询角色有哪些系统权限
ROLE_ROLE_PRIVS: 角色被赋予的角色
SQL> SELECT *FROM ROLE_ROLE_PRIVS WHERE ROLE='DBA'; ROLE GRANTED_ROLE ADM ------------------------------ ------------------------------ --- DBA OLAP_DBA NO DBA SCHEDULER_ADMIN YES DBA DELETE_CATALOG_ROLE YES DBA EXECUTE_CATALOG_ROLE YES DBA WM_ADMIN_ROLE NO DBA EXP_FULL_DATABASE NO DBA SELECT_CATALOG_ROLE YES DBA JAVA_DEPLOY NO DBA GATHER_SYSTEM_STATISTICS NO DBA JAVA_ADMIN NO DBA XDBADMIN NO ROLE GRANTED_ROLE ADM ------------------------------ ------------------------------ --- DBA IMP_FULL_DATABASE NO DBA XDBWEBSERVICES NO 13 rows selected.
SESSION_PRIVS 当前用户所拥有的全部权限
SQL> conn xff/xifenfei Connected. SQL> select * from session_privs; PRIVILEGE ---------------------------------------- CREATE SESSION SQL> conn / as sysdba Connected. SQL> revoke create session from xff; Revoke succeeded. SQL> grant connect to xff; Grant succeeded. SQL> conn xff/xifenfei Connected. SQL> select * from session_privs; PRIVILEGE ---------------------------------------- CREATE SESSION --只能查看系统权限或者角色中包含的系统权限,不能查看用户权限
SESSION_ROLES: 当前用户被激活的角色
SQL> SELECT * from SESSION_ROLES; no rows selected SQL> show user; USER is "SYS" SQL> conn xff/xifenfei Connected. SQL> SELECT *FROM SESSION_ROLES; ROLE ------------------------------ CONNECT --sysdba查询无role选项,全部是由系统权限构成
查询某用户的所有系统权限
SQL> SELECT PRIVILEGE, ADMIN_OPTION 2 FROM DBA_SYS_PRIVS 3 WHERE GRANTEE = &USERNAME 4 UNION 5 --角色转换为权限 6 SELECT PRIVILEGE, ADMIN_OPTION 7 FROM ROLE_SYS_PRIVS 8 WHERE ROLE IN 9 (SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = &USERNAME) 10 UNION 11 --角色的角色转为权限 12 SELECT PRIVILEGE, ADMIN_OPTION 13 FROM ROLE_SYS_PRIVS 14 WHERE ROLE IN (SELECT GRANTED_ROLE 15 FROM ROLE_ROLE_PRIVS 16 WHERE ROLE IN (SELECT GRANTED_ROLE 17 FROM DBA_ROLE_PRIVS 18 WHERE GRANTEE = &USERNAME)); 输入 username 的值: 'XFF' 原值 3: WHERE GRANTEE = &USERNAME 新值 3: WHERE GRANTEE = 'XFF' 输入 username 的值: 'XFF' 原值 9: (SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = &USERNAME) 新值 9: (SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'XFF') 输入 username 的值: 'XFF' 原值 18: WHERE GRANTEE = &USERNAME)) 新值 18: WHERE GRANTEE = 'XFF')) PRIVILEGE ADM ---------------------------------------- --- CREATE CLUSTER NO CREATE INDEXTYPE NO CREATE OPERATOR NO CREATE PROCEDURE NO CREATE SEQUENCE NO CREATE SESSION NO CREATE TABLE NO CREATE TRIGGER NO CREATE TYPE NO UNLIMITED TABLESPACE NO 已选择10行。
表相关权限视图
SELECT *FROM TABLE_PRIVILEGES; SELECT * FROM dba_TAB_PRIVS; SELECT * FROM ROLE_TAB_PRIVS;
drop database操作
一、sql操作
[oracle@node1 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Tue Nov 15 15:00:15 2011 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to an idle instance. SQL> startup mount; ORACLE instance started. Total System Global Area 417546240 bytes Fixed Size 2228944 bytes Variable Size 285216048 bytes Database Buffers 121634816 bytes Redo Buffers 8466432 bytes Database mounted. SQL> drop database; drop database * ERROR at line 1: ORA-12719: operation requires database is in RESTRICTED mode SQL> alter system enable restricted session; System altered. SQL> drop database; Database dropped. Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Oracle Label Security, OLAP, Data Mining, Oracle Database Vault and Real Application Testing options
二、alert日志内容
Tue Nov 15 15:00:18 2011 Adjusting the default value of parameter parallel_max_servers from 320 to 135 due to the value of parameter processes (150) Starting ORACLE instance (normal) LICENSE_MAX_SESSION = 0 LICENSE_SESSIONS_WARNING = 0 Picked latch-free SCN scheme 3 Using LOG_ARCHIVE_DEST_1 parameter default value as USE_DB_RECOVERY_FILE_DEST Autotune of undo retention is turned on. IMODE=BR ILAT =27 LICENSE_MAX_USERS = 0 SYS auditing is disabled Starting up: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, Oracle Label Security, OLAP, Data Mining, Oracle Database Vault and Real Application Testing options. ORACLE_HOME = /opt/oracle/product/11.2.0/db_1 System name: Linux Node name: node1.srtcloud.com Release: 2.6.18-238.19.1.el5 Version: #1 SMP Fri Jul 15 07:31:24 EDT 2011 Machine: x86_64 Using parameter settings in server-side spfile /opt/oracle/product/11.2.0/db_1/dbs/spfilet1.ora System parameters with non-default values: processes = 150 memory_target = 400M control_files = "/opt/oracle/oradata/t1/control01.ctl" control_files = "/opt/oracle/fast_recovery_area/t1/control02.ctl" db_block_size = 8192 compatible = "11.2.0.0.0" db_recovery_file_dest = "/opt/oracle/fast_recovery_area" db_recovery_file_dest_size= 4122M undo_tablespace = "UNDOTBS1" remote_login_passwordfile= "EXCLUSIVE" db_domain = "" dispatchers = "(PROTOCOL=TCP) (SERVICE=t1XDB)" local_listener = "LISTENER_T1" audit_file_dest = "/opt/oracle/admin/t1/adump" audit_trail = "DB" db_name = "t1" open_cursors = 300 diagnostic_dest = "/opt/oracle" Tue Nov 15 15:00:22 2011 PMON started with pid=2, OS id=26704 Tue Nov 15 15:00:22 2011 PSP0 started with pid=3, OS id=26706 Tue Nov 15 15:00:23 2011 VKTM started with pid=4, OS id=26708 at elevated priority VKTM running at (1)millisec precision with DBRM quantum (100)ms Tue Nov 15 15:00:23 2011 GEN0 started with pid=5, OS id=26712 Tue Nov 15 15:00:23 2011 DIAG started with pid=6, OS id=26714 Tue Nov 15 15:00:23 2011 DBRM started with pid=7, OS id=26716 Tue Nov 15 15:00:23 2011 DIA0 started with pid=8, OS id=26718 Tue Nov 15 15:00:23 2011 MMAN started with pid=9, OS id=26720 Tue Nov 15 15:00:23 2011 DBW0 started with pid=10, OS id=26722 Tue Nov 15 15:00:23 2011 LGWR started with pid=11, OS id=26724 Tue Nov 15 15:00:23 2011 CKPT started with pid=12, OS id=26726 Tue Nov 15 15:00:23 2011 SMON started with pid=13, OS id=26728 Tue Nov 15 15:00:23 2011 RECO started with pid=14, OS id=26730 Tue Nov 15 15:00:23 2011 MMON started with pid=15, OS id=26732 Tue Nov 15 15:00:23 2011 MMNL started with pid=16, OS id=26734 starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'... starting up 1 shared server(s) ... ORACLE_BASE from environment = /opt/oracle Tue Nov 15 15:00:23 2011 ALTER DATABASE MOUNT Successful mount of redo thread 1, with mount id 2578048199 Database mounted in Exclusive Mode Lost write protection disabled Completed: ALTER DATABASE MOUNT Tue Nov 15 15:00:33 2011 drop database ORA-12719 signalled during: drop database... Tue Nov 15 15:00:47 2011 Stopping background process MMNL Stopping background process MMON Starting background process MMON Tue Nov 15 15:00:49 2011 MMON started with pid=15, OS id=26788 Starting background process MMNL Tue Nov 15 15:00:49 2011 MMNL started with pid=16, OS id=26790 ALTER SYSTEM enable restricted session; Tue Nov 15 15:01:06 2011 drop database Deleted file /opt/oracle/oradata/t1/system01.dbf Deleted file /opt/oracle/oradata/t1/sysaux01.dbf Deleted file /opt/oracle/oradata/t1/undotbs01.dbf Deleted file /opt/oracle/oradata/t1/users01.dbf Deleted file /opt/oracle/oradata/t1/redo01.log Deleted file /opt/oracle/oradata/t1/redo02.log Deleted file /opt/oracle/oradata/t1/redo03.log Deleted file /opt/oracle/oradata/t1/temp01.dbf Deleted file /opt/oracle/product/11.2.0/db_1/dbs/snapcf_t1.f Shutting down archive processes Archiving is disabled Create Relation ADR_CONTROL Create Relation ADR_INVALIDATION Create Relation INC_METER_IMPT_DEF Create Relation INC_METER_PK_IMPTS USER (ospid: 26761): terminating the instance Instance terminated by USER, pid = 26761 Tue Nov 15 15:01:18 2011 Deleted file /opt/oracle/oradata/t1/control01.ctl Deleted file /opt/oracle/fast_recovery_area/t1/control02.ctl Completed: drop database Shutting down instance (abort) License high water mark = 1 Tue Nov 15 15:01:32 2011 Instance shutdown complete
三、后续工作
1、清除相关日志trace文件$ORACLE_BASE/diag
2、删除fast_recovery_area文件$ORACLE_BASE/fast_recovery_area
3、删除归档日志(根据配置)
4、删除/etc/oratab中关于该数据库的记录(t1:/opt/oracle/product/11.2.0/db_1:N)
四、补充说明
1、在能够使用dbca删除数据库的情况下,应该选择dbca,这个删除的更加干净
2、dbca删除数据库也需要清理部分文件(如:归档日志)
3、如果对数据库的存储结构比较了解,可以人工关闭数据库后,手工删除相关文件
4、drop database使用于10g及其以上版本
发表在 Oracle
评论关闭