Oracle日志相关操作
1.归档日志设置
# 切换账号
$ su - oracle# 登录oracle的sys账户
$ sqlplus / as sysdbasql> archive log list; #查看是不是归档方式
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 367
Next log sequence to archive 369
Current log sequence # 注:其中Archive Mode表示是归档方式,可以不用进行以下操作sql> alter system set log_archive_start=true scope=spfile; #启用主动归档
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> alter system switch logfile;
#在oracle情况中运行如下查询:
sql> select name from v$archived_log;
2.设置非归档模式
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; #查看此时便处于非归档模式
3.阿里云设置oracle实时同步时,oracle的准备
查看数据库是否支持
# 查看数据库版本
sql> select * from v$version;
#可以看到版本是c12sql> select version from v$instance;# 查看数据库不是cdb类型(datawork不支持db)
sql> select name,cdb,open_mode,con_id from v$database;
创建同步账号,并赋予相应权限
# 创建oracle同步账号
sql> CREATE USER username IDENTIFIED BY password;
# 创建test账号
sql> CREATE USER test IDENTIFIED BY test123;#给同步账户设置相应权限
grant create session to '同步账号'; //授权同步账号登录数据库。
grant connect to '同步账号'; //授权同步账号连接数据库。
grant select on nls_database_parameters to '同步账号'; //授权同步账号查询数据库的nls_database_parameters系统配置。
grant select on all_users to '同步账号'; //授权同步账号查询数据库中的所有用户。
grant select on all_objects to '同步账号'; //授权同步账号查询数据库中的所有对象。
grant select on DBA_MVIEWS to '同步账号'; //授权同步账号查看数据库的物化视图。
grant select on DBA_MVIEW_LOGS to '同步账号'; //授权同步账号查看数据库的物化视图日志。
grant select on DBA_CONSTRAINTS to '同步账号'; //授权同步账号查看数据库所有表的约束信息。
grant select on DBA_CONS_COLUMNS to '同步账号'; //授权同步账号查看数据库中所有表指定约束中所有列的相关信息。
grant select on all_tab_cols to '同步账号'; //授权同步账号查看数据库中表、视图和集群中列的相关信息。
grant select on sys.obj$ to '同步账号'; //授权同步账号查看数据库中的对象。sys.obj$表是Oracle字典表中的对象基础表,存放Oracle的所有对象。
grant select on SYS.COL$ to '同步账号'; //授权同步账号查看数据库表中列的定义信息。SYS.COL$用于保存表中列的定义信息。
grant select on sys.USER$ to '同步账号'; //授权同步账号查看数据库的系统表。sys.USER$是用户会话的默认服务。
grant select on sys.cdef$ to '同步账号'; //授权同步账号查看数据库的系统表。
grant select on sys.con$ to '同步账号'; //授权同步账号查看数据库的约束信息。sys.con$记录了Oracle的相关约束信息。
grant select on all_indexes to '同步账号'; //授权同步账号查看数据库的所有索引。
grant select on v_$database to '同步账号'; //授权同步账号查看数据库的v_$database视图。
grant select on V_$ARCHIVE_DEST to '同步账号'; //授权同步账号查看数据库的V_$ARCHIVE_DEST视图。
grant select on v_$log to '同步账号'; //授权同步账号查看数据库的v_$log视图。v_$log用于显示控制文件中的日志文件信息。
grant select on v_$logfile to '同步账号'; //授权同步账号查看数据库的v_$logfile视图。v_$logfile包含有关Redo日志文件的信息。
grant select on v_$archived_log to '同步账号'; //授权同步账号查看数据库的v$archived_log视图。v$archived_log包含有关归档日志的相关信息。
grant select on V_$LOGMNR_CONTENTS to '同步账号'; //授权同步账号查看数据库的V_$LOGMNR_CONTENTS视图。
grant select on DUAL to '同步账号'; //授权同步账号查看数据库的DUAL表。DUAL是用来构成select语法规则的虚拟表,Oracle的中DUAL中仅保留一条记录。
grant select on v_$parameter to '同步账号'; //授权同步账号查看数据库的v_$parameter视图。v$parameter是Oracle的动态字典表,保存了数据库参数的设置值。
grant select any transaction to '同步账号'; //授权同步账号查看数据库的任意事务。
grant execute on SYS.DBMS_LOGMNR to '同步账号'; //授权同步账号使用数据库的Logmnr工具。Logmnr工具可以帮助您分析事务,并找回丢失的数据。
grant alter session to '同步账号'; //授权同步账号修改数据库的连接。
grant select on dba_objects to '同步账号'; //授权同步账号查看数据库的所有对象。
grant select on v_$standby_log to '同步账号'; //授权同步账号查看数据库的v_$standby_log视图。v_$standby_log包含备用库的归档日志。
grant select on v_$ARCHIVE_GAP to '同步账号'; //授权同步账号查询缺失的归档日志。# 赋予相应权限,以test为例
grant create session to test;
grant connect to test;
grant select on nls_database_parameters to test;
grant select on all_users to test;
grant select on all_objects to test;
grant select on DBA_MVIEWS to test;
grant select on DBA_MVIEW_LOGS to test;
grant select on DBA_CONSTRAINTS to test;
grant select on DBA_CONS_COLUMNS to test;
grant select on all_tab_cols to test;
grant select on sys.obj$ to test;
grant select on SYS.COL$ to test;
grant select on sys.USER$ to test;
grant select on sys.cdef$ to test;
grant select on sys.con$ to test;
grant select on all_indexes to test;
grant select on v_$database to test;
grant select on V_$ARCHIVE_DEST to test;
grant select on v_$log to test;
grant select on v_$logfile to test;
grant select on v_$archived_log to test;
grant select on V_$LOGMNR_CONTENTS to test;
grant select on DUAL to test;
grant select on v_$parameter to test;
grant select any transaction to test;
grant execute on SYS.DBMS_LOGMNR to test;
grant alter session to test;
grant select on dba_objects to test;
grant select on v_$standby_log to test;
grant select on v_$ARCHIVE_GAP to test;
grant LOGMINING TO test;# 如果您涉及使用离线全量同步数据,还需要执行如下命令,授权同步账号所有表的查询权限。
sql> grant select any table to '同步账号'; # Oracle 12c及之后的版本需要执行如下命令,授权同步账号可以进行日志挖掘。Oracle 12c之前的版本,内置日志挖掘功能,无需执行该命令。
sql> grant LOGMINING TO '同步账号';
开启补充日志
您可以根据需要选择开启合适的补充日志,SQL语句如下。
sql> alter database add supplemental log data(primary key) columns; //为数据库的主键列开启补充日志。
sql> alter database add supplemental log data(unique) columns; //为数据库的唯一索引列开启补充日志。
切换Redo日志文件
开启补充日志后,您需要多次(一般建议执行5次)执行如下命令,切换Redo日志文件。
sql> alter system switch logfile;
查看数据库的字符编码
sql> select * from v$nls_parameters where PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
数据集成同步数据时,仅支持UTF8、AL32UTF8、AL16UTF16及ZHS16GBK编码格式。如果数据库中包含不支持的字符编码,请进行修改后再执行数据同步。
检查数据库表的数据类型
您可以使用查看表的SQL相关语句(SELECT)查询数据库表的数据类型。示例查看’tablename’表数据类型的语句如下。
sql> select COLUMN_NAME,DATA_TYPE from all_tab_columns where TABLE_NAME='tablename'; 或sql> desc tablename;
核对数据类型是否被datawork支持(参考:https://help.aliyun.com/zh/dataworks/user-guide/oracle-data-source?spm=a2c4g.11186623.0.i52)
4.日志爆满问题处理及设置日志自动清理脚本
情况一:账户可以登录时
# 进入RMAN
sql> rman target /# 查看备份参数
RMAN> show all;using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name S4ORCL are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/12c/dbs/snapcf_s4orcl.f'; # default# 查看存储日志
RMAN> crosscheck archivelog all;# 验证并删除过期归档日志
RMAN> delete noprompt expired archivelog all;# 验证并删除过期归档日志,方式二
RMAN> delete noprompt archivelog all completed before '时间';
# 其中,时间需要根据情况设置,表示删除早于该时间的归档日志,比如'SYSDATE - 3',表示保留近3天的日志
设置自动清理日志脚本
rman target / nocatalog << EOF
run {
allocate channel d1 type disk;
delete noprompt archivelog all completed before 'SYSDATE - 3';
release channel d1;
}
exit;
EOF
其中,'SYSDATE - 3’表示保留近三天的日志,按需设置
归档日志的备份和恢复
# 备份归档日志
RMAN> backup archivelog all;# 在进行数据库恢复时,可能需要使用备份的归档日志进行恢复。
RMAN> restore archivelog all;# 恢复完归档日志后,需要将恢复的归档日志应用到数据库中,可以在SQL*Plus命令行界面输入以下命令进行恢复:
sql> recover database;
情况二:存储占满导致无法登录账户时
先删除一部分日志文件后,使得账户能够登录oracle,再进行情况一的操作删除多余日志
# 使用root用户
# 查看存储情况
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 1.1M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/vda1 69G 38G 28G 58% /
tmpfs 781M 0 781M 0% /run/user/0# 其中/dev/vda1中的Used表示当前日志存储空间剩余容量# 按天删除
# 查看某天日志数量
$ ls /u01/app/oracle/admin/s4orcl/adump |grep 20230701 |wc -l
# 删除某天日志
$ rm -rf /u01/app/oracle/admin/s4orcl/adump/*20230701*# 按月删除
# 查看某月日志数量
$ ls /u01/app/oracle/admin/s4orcl/adump |grep 202307 |wc -l
# 删除某月10天日志
$ rm -rf /u01/app/oracle/admin/s4orcl/adump/*2023070*
$ rm -rf /u01/app/oracle/admin/s4orcl/adump/*2023071*
$ rm -rf /u01/app/oracle/admin/s4orcl/adump/*2023072*
$ rm -rf /u01/app/oracle/admin/s4orcl/adump/*2023073*
# 删除某月日志
$ rm -rf /u01/app/oracle/admin/s4orcl/adump/*202307*
相关文章:
Oracle日志相关操作
1.归档日志设置 # 切换账号 $ su - oracle# 登录oracle的sys账户 $ sqlplus / as sysdbasql> archive log list; #查看是不是归档方式 SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destin…...
IMV8.0
一、背景内容 经历了多个版本,基础内容在前面,可以使用之前的基础环境: v1: https://blog.csdn.net/wtt234/article/details/132139454 v2: https://blog.csdn.net/wtt234/article/details/132144907 v3: h…...
【Linux 网络】 数据链路层协议
数据链路层协议 数据链路层解决的问题以太网协议认识以太网以太网帧格式 认识MAC地址对比理解MAC地址和IP地址认识MTUMTU对IP协议的影响MTU对UDP协议的影响MTU对于TCP协议的影响ARP协议ARP协议的作用ARP协议的工作流程ARP数据报的格式 总结 数据链路层解决的问题 IP拥有将数据跨…...
GWJDN-400型2MHZ自动平衡高温介电温谱仪
GWJDN-400型2MHZ自动平衡高温介电温谱仪 GWJDN-400型2MHZ自动平衡高温介电温谱仪 关键词:介电常数,高温介电,自动平衡 主要功能: 材料介电常数测试仪 半导体材料的介电常数、导电率和C-V特性液晶材料:液晶单元的介电常数、弹性…...
第十五次CCF计算机软件能力认证
第一题:小明上学 小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校。 为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间。 他上学需要经过数段道路,相邻两段道路之间设有至多一盏红绿灯。 京…...
ThreadPoolExecutor线程池详解
ThreadPoolExecutor线程池详解 1. 背景 项目最近的迭代中使用到了ThreadPoolExecutor线程池,之前都只是知道怎么用,没有了解过线程池的底层原理,项目刚上线,有时间整理一下线程池的用法,学习一下线程池的底层实现与工…...
【VB6|第22期】用SQL的方式读取Excel数据
日期:2023年8月7日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方ÿ…...
融云:从「对话框」跳进魔法世界,AIGC 带给社交的新范式
8 月 17 日(周四),融云将带来直播课-《北极星如何协助开发者排查问题与预警风险?》欢迎点击上方报名~ AIGC 与社交结合的应用主要分两种,一是发乎于 AIGC,以大模型为基础提供虚拟伴侣等服务的 Appÿ…...
UWB伪应用场景 - 别再被商家忽悠
近几年UWB技术在网上宣传得如火如荼,与高精度定位几乎或等号,笔者认为这是营销界上的一大成功案例。 UWB超宽带技术凭借着低功耗、高精度,确实在物联网行业混得风生水起,但在无数实际应用案例中,根据客户的反馈情况&a…...
【快应用】list组件属性的运用指导
【关键词】 list、瀑布流、刷新、页面布局 【问题背景】 1、 页面部分内容需要瀑布流格式展示,在使用lsit列表组件设置columns进行多列渲染时,此时在里面加入刷新动画时,动画只占了list组件的一列,并没有完全占据一行宽度&…...
js 面试题总结
js 面试题总结 文章目录 js 面试题总结近百道面试题1、实现 子元素 在父元素中垂直居中的方式2、实现 子元素 在父元素中水平 垂直居中的方式3、描述 Keepealive 的作用,有哪些钩子函数,如何控制组件级存列表?4、请写出判断对象是数组的三个方法5、请说…...
HTML之表单标签
目录 表单标签 Form表单 定义: 基本语法结构: form属性: enctyoe属性 fieldeset标签 fieldeset属性 legend标签 label标签 优势 label属性 input标签 input属性 input标签中的type属性 text text输入框有以下配套属性 searc bu…...
Java经典面试题总结(一)
Java经典面试题总结(一) 题一:Java编译运行原理题二:JDK,JVM,JRE三者之间的关系题三:谈一下对冯诺依曼体系的了解题四:重载与重写的区别题五:拆箱装箱是指什么࿱…...
Android监听设备亮灭屏广播(动态广播代码)
MainActivity中 public class MainActivity extends Activity {private WakeAndLockReceiver wakeAndLockReceiver;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//注册亮屏和息…...
【前端面试手撕题】简易深拷贝、深拷贝、寄生组合式继承、发布订阅模式、观察者模式
FED16 简易深拷贝 描述 请补全JavaScript代码,要求实现对象参数的深拷贝并返回拷贝之后的新对象。 注意: 参数对象和参数对象的每个数据项的数据类型范围仅在数组、普通对象({})、基本数据类型中]无需考虑循环引用问题 <!DO…...
【生物医学】应激(应激反应)全身适应综合征
最近在探索疲劳、负荷、应激方面的底层发生机制,遂整理了一些相关内容,以脑图方式呈现。本文以生物医学向为主。 OK,开始基础介绍:应激 (stress)是指在收到外部或内部、心理社会刺激下的非特异性适应反应。 本文主要收集整理了相…...
浅析基于安防监控EasyCVR视频汇聚融合技术的运输管理系统
一、项目背景 近年来,随着物流行业迅速发展,物流运输费用高、运输过程不透明、货损货差率高、供应链协同能力差等问题不断涌现,严重影响了物流作业效率,市场对于运输管理数字化需求愈发迫切。当前运输行业存在的难题如下…...
VBA技术资料MF41:VBA_将常规数字转换为文本数字
【分享成果,随喜正能量】时有落花至,远随流水香。人生漫长,不攀缘,不强求,按照自己喜欢的方式生活,不必太过在意,顺其自然就好。路再长也有终点,夜再黑也有尽头。 我给VBA的定义&am…...
Wavefront .OBJ文件格式解读【3D】
OBJ(或 .OBJ)是一种几何定义文件格式,最初由 Wavefront Technologies 为其高级可视化器动画包开发。 该文件格式是开放的,已被其他 3D 图形应用程序供应商采用。 OBJ 文件格式是一种简单的数据格式,仅表示 3D 几何体&…...
JavaScript:ES6中类与继承
在JavaScript编程中,ES6引入了一种更现代、更清晰的方式来定义对象和实现继承,那就是通过类和继承机制。本文将以通俗易懂的方式解释ES6中类与继承的概念,帮助你更好地理解和应用这些特性。 1. 类的创建与使用 类是一种模板,用于…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
