1、配置ORACLE环境变量
-
1)使用root权限编辑/etc/profile文件;
-
2)输入vi /etc/profile文件,写入对应的ORACLE环境变量;
PS:对应环境下ORACLE_HOME的文件路径确保存在。
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 export ORACLE_SID=oraclelogd export PATH=$ORACLE_HOME/bin:$PATH
-
3)保存后执行source /etc/profile生效环境变量;
-
4)创建软连接 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin;
2、连接设置日志归档
-
1)切换到oralce用户,su - oracle;
-
2)创建数据需要的目录,需要提前创建,否则启用日志归档会报错目录不存在;
mkdir /home/oracle/oracle-data
-
3)以DBA身份连接到数据库,后续操作都是终端操作;
sqlplus /nolog conn /as sysdba
-
4)启用日志归档,(这里的db_recovery_file_dest归档文件夹必须存在);
alter system set db_recovery_file_dest_size = 50G; alter system set db_recovery_file_dest = '/home/oracle/oracle-data' scope=spfile; shutdown immediate; startup mount; alter database archivelog; alter database open;
-
5)检查日志归档是否开启,"Database log mode: Archive Mode" ;
archive log list;
-
6)设置数据库启用补充日志记录;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
-
7)创建表空间;
CREATE TABLESPACE logminer_tbs DATAFILE '/home/oracle/logminer_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
-
8)创建用户$UserName(这里是用户名)绑定表空间LOGMINER_TBS,$PassWord(这里是用户名的密码);
PS:接下来要对需要日志归档所有的用户重复8-10的指令操作,$UserName为用户变量名称,设置时需要替换其真实用户名称。权限设置的时候需要一条条的执行,查看是否权限设置成功。
CREATE USER $UserName IDENTIFIED BY $PassWord DEFAULT TABLESPACE LOGMINER_TBS QUOTA UNLIMITED ON LOGMINER_TBS;
-
9)授予$UserName用户dba的权限;
GRANT CONNECT,RESOURCE,DBA TO $UserName;
-
10)授予其他相关权限;
GRANT CREATE SESSION TO $UserName; GRANT SELECT ON V_$DATABASE to $UserName; GRANT FLASHBACK ANY TABLE TO $UserName; GRANT SELECT ANY TABLE TO $UserName; GRANT SELECT_CATALOG_ROLE TO $UserName; GRANT EXECUTE_CATALOG_ROLE TO $UserName; GRANT SELECT ANY TRANSACTION TO $UserName; GRANT EXECUTE ON SYS.DBMS_LOGMNR TO $UserName; GRANT SELECT ON V_$LOGMNR_CONTENTS TO $UserName; GRANT CREATE TABLE TO $UserName; GRANT LOCK ANY TABLE TO $UserName; GRANT ALTER ANY TABLE TO $UserName; GRANT CREATE SEQUENCE TO $UserName; GRANT EXECUTE ON DBMS_LOGMNR TO $UserName; GRANT EXECUTE ON DBMS_LOGMNR_D TO $UserName; GRANT SELECT ON V_$LOG TO $UserName; GRANT SELECT ON V_$LOG_HISTORY TO $UserName; GRANT SELECT ON V_$LOGMNR_LOGS TO $UserName; GRANT SELECT ON V_$LOGMNR_CONTENTS TO $UserName; GRANT SELECT ON V_$LOGMNR_PARAMETERS TO $UserName; GRANT SELECT ON V_$LOGFILE TO $UserName; GRANT SELECT ON V_$ARCHIVED_LOG TO $UserName; GRANT SELECT ON V_$ARCHIVE_DEST_STATUS TO $UserName;