DBLOG
» WTF
Toggle navigation
DBLOG
主页
1、用户
2、各种方案
3、备份恢复
4、表空间相关
5、OGG
6、文件管理
7、常见故障分析
8、DG
9、集群相关
About Me
归档
标签
分类 - 2、各种方案
1、删除实例方案
2025-08-29 00:07:53
2
0
0
停掉非第一节点上的 DB 实例 在第一节点执行以下步骤: 1. 关闭数据库 SQL> SHUTDOWN IMMEDIATE; 2. 以 exclusive 模式挂载第二个实例,并启用受限会话 SQL> STARTUP MOUNT EXCLUSIVE;SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; 3. 禁用集群数据库 SQL> ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=SPFILE; 4. 关闭数据库
2、所有普通索引进行重建
2025-08-29 00:07:53
2
0
0
创建存储过程 启用DBMS_OUTPUT 执行 创建存储过程 CREATE OR REPLACE PROCEDURE BATCH_REBUILD_INDEX IS S_SQL VARCHAR2(500); ACCOUNT NUMBER := 0;BEGIN FOR LINE2 IN ( SELECT T.OWNER, T.INDEX_NAME FROM ALL_INDEXES T WHERE T.OWNER = '目标用户名' AND T.TABLE_TYPE = 'TABLE' AND T.TEMPORAR
3、oracle 通过dblink访问mysql
2025-08-29 00:07:53
2
0
0
第一步:安装 MySQL ODBC 驱动程序 mysql中表编码注意 将 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 修改为 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci 否则oracle中查询报错ERROR at line 1:ORA-28500: connection from ORACLE to a non-Oracle system returned this message:[MySQL][ODBC 5.2(w) Driver][mysqld-8.0.21]So
4、缩表、去重、杀会话
2025-08-29 00:07:53
1
0
0
1. 去重操作 2. 锁表处理 查看被锁表信息 杀掉锁表进程 查看数据库引起锁表的SQL语句 3. 事务锁处理 查看事务锁信息 杀掉事务锁进程 处理被标记为KILLED的会话 在操作系统级杀死进程 1. 去重操作 -- 去重操作DELETE FROM tablename t WHERE t.rowid IN (SELECT rid FROM (SELECT t1.rowid rid, ROW_NUMBER() OVER(PARTITION BY
5、查看各种数据库对象的DDL语句
2025-08-29 00:07:53
2
0
0
1. 查看存储过程的创建语句 2. 查看视图的创建语句 3. 查询当前用户下的表的创建语句 4. 查询其他用户下的表的创建语句 5. 查询表的索引 6. 查询当前用户下索引的创建语句 7. 查询其他用户下索引的创建语句 8. 查询当前用户下视图的创建语句 9. 查询其他用户下视图的创建语句 10. 查询表的约束 11. 查询创建主键的语句 12. 查询创建外键的语句 13. 查询一个用户下所有表、索引、存储过程、函数的DDL 14. 查询所有表空间的DDL 15. 查询创建用户的语句 1. 查看存储过程的创建语句 -- 查看存储过程的创建语句SELECT te
6、重放相关
2025-08-29 00:07:53
2
0
0
开启、关闭 create directory CAPTURE_DIR as '/data6/capture';--开启BEGIN DBMS_WORKLOAD_CAPTURE.START_CAPTURE( name => 'dbm01_capture', dir => 'CAPTURE_DIR' );END;/--关闭BEGIN DBMS_WORKLOAD_CAPTURE.FINISH_CAPTURE;END;/BEGIN DBMS_WORKLOAD_REPLAY.INITIALIZE_REPLAY( replay_name => 'my_re
7、drop 后如何恢复
2025-08-29 00:07:53
2
0
0
1. 查看回收站中的表 2. 恢复删除的表 方法1:使用原表名恢复 方法2:使用回收站中的表名恢复 3. 示例操作 1. 查看回收站中的表 2. 使用原表名恢复 3. 使用回收站中的表名恢复 注意事项 1. 查看回收站中的表 首先,查看有哪些表被删除并存放在回收站中: -- 查看当前用户的表及其是否被删除SELECT table_name, dropped FROM user_tables;-- 查看回收站中的对象SELECT object_name, original_name, type, droptime FROM user_recy
8、truncate后如何处理
2025-08-29 00:07:53
3
0
0
1. 使用备份恢复 2. 使用闪回技术 闪回表 闪回查询 3. 使用日志挖掘(Log Miner) 4. 使用第三方工具 注意事项 1. 使用备份恢复 如果你有定期的数据库备份,可以从备份中恢复被截断的表。这通常涉及以下步骤: 还原数据库备份:使用备份工具(如RMAN)还原数据库到截断操作之前的时间点。 导出表数据:从还原的数据库中导出被截断表的数据。 导入表数据:将导出的数据导入到当前数据库中。 2. 使用闪回技术 Oracle提供了一些闪回技术,如闪回表(Flashback Table)和闪回查询(Flashback Query),
9、10046、10053
2025-08-29 00:07:53
1
0
0
10046 事件 主要作用 使用方法 10053 事件 主要作用 使用方法 示例 示例:使用 10046 事件 示例:使用 10053 事件 总结 10046 事件 10046 事件用于 SQL 语句的执行跟踪。这种跟踪提供了详细的执行信息,包括等待事件、绑定变量、游标等。 主要作用 记录 SQL 执行过程中详细的计时信息。 显示等待事件来分析性能问题。 提供绑定变量的值。 生成详细的执行路径信息。 使用方法 启用 10046 事件: 可以在会话级别启用 10046 事件,方法有多种: 通过 ALTER SESSI