【YashanDB数据库】Yashandb表闪回业务表实践
1.自关联外键插入数据时报错:YAS-02033 foreign key constraint violated parent key not found-YashanDB2.【YashanDB知识库】ycm托管数据库时,数据库非OM安装无法托管3.【YashanDB知识库】Java程序调用存储过程,在提取clob时报YAS-000044.【YashanDB知识库】kettle从DM8的number类型同步到YashanDB的varchar类型,存入是科学计数法形式的数据5.【YashanDB知识库】ODBC驱动类问题定位方法6.【YashanDB知识库】outline固化执行计划7.【YashanDB知识库】PHP使用OCI接口使用数据库绑定参数功能异常8.【YashanDB知识库】PHP使用ODBC驱动无法获取长度为256char以上的数据9.【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常10.【YashanDB知识库】YAC修改参数后关闭数据库夯住11.【YashanDB知识库】YAS-00103 no free block in dictionary cache12.【YashanDB知识库】YAS-00220, utf8 sequence is wrong13.【YashanDB知识库】YAS-02024 lock wait timeout, wait time 0 milliseconds14.【YashanDB知识库】YashanDB 开机自启15.【YashanDB知识库】yasql登录报错:YAS-0041316.【YashanDB知识库】表收集统计信息默认阈值引起SQL执行效率差17.【YashanDB知识库】调整NUMBER精度,再执行统计信息收集高级包偶现数据库异常退出18.【YashanDB知识库】含有NUL字节的varchar字符串查询时出现截断19.【YashanDB知识库】收集分区表统计信息采样率小于1导致SQL执行计划走偏20.【YashanDB知识库】手动停止统计信息自动收集任务导致的性能变差21.【YashanDB知识库】数据变化率超过阈值统计信息失效22.【YashanDB知识库】数据库审计shutdown immediate操作导致数据库异常退出23.【YashanDB知识库】同时设置默认值和非空约束时报错YAS-0207024.【YashanDB知识库】应用绑定参数的慢查询,慢日志抓取不到25.【YashanDB知识库】用户密码带@字符时exp和imp无法使用26.【YashanDB知识库】字段加上索引后,SQL查询不到结果27.【YashanDB知识库】存储过程报错snapshot too old28.【YashanDB知识库】virt虚拟内存远大于res内存问题分析29.【YashanDB知识库】swap空间使用超大报错30.【YashanDB知识库】oracle dblink varchar类型查询报错记录31.【YashanDB知识库】EXP导致主机卡死问题32.【YashanDB知识库】23.1.3.101版本创建物化视图coredump33.【YashanDB知识库】v$instance视图中实例角色含义不明确34.【YashanDB知识库】yac修改参数后关闭数据库hang住35.【YashanDB知识库】汇聚库23.1环境发生coredump36.【YashanDB知识库】离线升级一章22.2不支持直接升级到23.137.为何共享集群的高可用能力被频频称赞,它的机制有何不同?38.【YashanDB知识库】数据库使用shutdown immediate无响应导致coredump39.【YashanDB知识库】filter or改写问题40.【YashanDB知识库】stmt未close,导致YAS-00103 no free block in sql main pool part 0报错分析41.【YashanDB知识库】update/delete未选中行时,v$transaction视图没有事务,alter超时问题42.【YashanDB知识库】yasdb jdbc驱动集成BeetISQL中间件,业务(java)报autoAssignKey failure异常43.【YashanDB知识库】yasdb jdbc驱动集成druid连接池,业务(java)日志中有token IDENTIFIER start异常44.【YashanDB知识库】YashanDB的JDBC/OCI驱动如何设置字符编码45.【YashanDB知识库】绑定参数,同一个sql多个执行计划的问题46.【YashanDB知识库】服务端是GBK编码,导致从22.2.12.100升级到22.2.13.100失败问题47.【YashanDB知识库】开源调度框架Quartz写入Boolean值到YashanDB报错48.【YashanDB知识库】列与存储过程中重名变量/别名问题49.【YashanDB知识库】如何使用yasldr导入lob类型?50.【YashanDB知识库】如何远程连接、使用YashanDB?51.【YashanDB知识库】设置归档日志上限,但归档日志没自动清理,导致磁盘空间满52.【YashanDB知识库】使用select * 创建的物化视图无法进行查询重写53.【YashanDB知识库】账号被锁,如何分析具体原因54.【YashanDB知识库】自动选举配置错误引发的一系列问题55.【YashanDB知识库】IMP跨网络导入慢问题56.【YashanDB知识库】ycm纳管主机安装YCM-AGENT时报错“任务提交失败,无法连接主机”57.【YashanDB知识库】ycm托管数据库时,数据库非OM安装无法托管58.【YashanDB知识库】ycm托管数据库时报错OM host ip:127.0.0.1 is not support join to YCM59.【YashanDB知识库】自关联外键插入数据时报错:YAS-02033 foreign key constraint violated parent key not found60.【YashanDB知识库】statement级别的触发器在jdbc接口调用executeBatch时被多次触发61.【YashanDB数据库】大事务回滚导致其他操作无法执行,报错YAS-02016 no free undo blocks62.【YashanDB数据库】VMware虚拟机使用默认安装,在掉电之后数据库无法启动63.【YashanDB数据库】数据库运行正常,日志出现大量错误metadata changed64.【YashanDB数据库】由于网络带宽不足导致的jdbc向yashandb插入数据慢65.【YashanDB数据库】Mybatis-plus分页框架识别不到Yashandb66.【YashanDB数据库】PHP无法通过ODBC连接到数据库67.【YashanDB数据库】Ubuntu系统加载Yashan C驱动后无法使用PHP68.【YashanDB数据库】YAS-00413 wait for receive timeout69.【YashanDB数据库】YAS-02024 lock wait timeout, wait time 0 milliseconds70.【YashanDB数据库】YAS-02032 column type is incompatible with referenced column type71.【YashanDB数据库】YAS-02079 archive log mode must be enabled when database is in replication mode72.【YashanDB数据库】YAS-02143 invalid username/password, login denied73.【YashanDB数据库】yasboot查询数据库状态时显示数据库状态为off
74.【YashanDB数据库】Yashandb表闪回业务表实践
75.【YashanDB数据库】YashanDB如何回收表空间76.【YashanDB数据库】yasql登录有特殊字符@导致无法登录77.【YashanDB知识库】YMP元数据阶段二报错YAS-0420478.【YashanDB知识库】共享集群YAC换IP79.【YashanDB知识库】生成迁移报告失败,"报错未知类型错误异常:"80.【YashanDB知识库】主备延迟故障分析方法81.【YashanDB知识库】表数据量不多,lob数据段有大量空间,插入数据报错82.【YashanDB知识库】修改字段长度后,jdbc驱动接口报YAS-04007 Message:result set metadata changed异常83.【YashanDB知识库】执行sql语句时报YAS-04401 data type - expected, but BLOB got异常84.【YashanDB知识库】DBeaver无法访问数据库85.【YashanDB知识库】YAS-02025 no free space in virtual memory pool86.【YashanDB知识库】archivelog磁盘满导致数据库abnormal87.【YashanDB知识库】数据库获取时间和服务器时间不一致88.【YashanDB知识库】yasql对字符串中分号的判定89.【YashanDB知识库】单机升级典型问题及应急措施90.【YashanDB知识库】客户端字符集与数据库字符集兼容问题91.【YashanDB知识库】如何配置jdbc驱动使getDatabaseProductName()返回Oracle92.【YashanDB知识库】YAS-04110 invalid variant name93.【YashanDB知识库】查询YashanDB表空间使用率94.【YashanDB知识库】多表更新报错 YAS-04344 multi-table update is not supported95.【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差96.【YashanDB知识库】YMP迁移oracle不兼容给用户授权高级包97.【YashanDB知识库】php查询超过256长度字符串,数据被截断的问题98.【YashanDB知识库】如何查看共享集群共享盘的挂载关系数据误删除
DELETE 操作闪回
示例(HEAP表)
基于闪回查询(建议):
select * from sales.branches1;
BRANCH_NO BRANCH_NAME AREA_NO ADDRESS EMPLOYEE_COUNT
--------- ---------------------------------------------------------------- ------- ---------------------------------------------------------------- --------------
0001 深圳 40
0101 上海 01 上海市静安区
0102 南京 01 City of Nanjing 70
0103 福州 01
0104 厦门 01 Xiamen
0401 北京 04
0402 天津 04 10
0403 大连 04 大连市 30
0404 沈阳 04
0201 成都 02
0501 武汉 30
0405 贵州 04 Guizhou
12 rows fetched.
delete sales.branches1 where BRANCH_NO = '0405' and BRANCH_NAME ='贵州';
commit;
SQL> SQL> select systimestamp from dual;
SYSTIMESTAMP
----------------------------------------------------------------
2024-05-11 14:03:11.193397
1 row fetched.
insert into sales.branches1 values('0406','江西',4,'JiangXi',50);
commit;
SQL> select systimestamp from dual;
SYSTIMESTAMP
----------------------------------------------------------------
2024-05-11 14:04:46.152775
SQL> select * from sales.branches1 as of TIMESTAMP TIMESTAMP('2024-05-11 14:03:00.00000');
BRANCH_NO BRANCH_NAME AREA_NO ADDRESS EMPLOYEE_COUNT
--------- ---------------------------------------------------------------- ------- ---------------------------------------------------------------- --------------
0001 深圳 40
0101 上海 01 上海市静安区
0102 南京 01 City of Nanjing 70
0103 福州 01
0104 厦门 01 Xiamen
0401 北京 04
0402 天津 04 10
0403 大连 04 大连市 30
0404 沈阳 04
0201 成都 02
0501 武汉 30
0405 贵州 04 Guizhou
12 rows fetched.
create table sales.branches1_1403 as select * from sales.branches1 as of TIMESTAMP TIMESTAMP('2024-05-11 14:03:00.00000');
Succeed.
SQL> select * from sales.branches1_1403;
BRANCH_NO BRANCH_NAME AREA_NO ADDRESS EMPLOYEE_COUNT
--------- ---------------------------------------------------------------- ------- ---------------------------------------------------------------- --------------
0001 深圳 40
0101 上海 01 上海市静安区
0102 南京 01 City of Nanjing 70
0103 福州 01
0104 厦门 01 Xiamen
0401 北京 04
0402 天津 04 10
0403 大连 04 大连市 30
0404 沈阳 04
0201 成都 02
0501 武汉 30
0405 贵州 04 Guizhou
12 rows fetched.
create table sales.branches1_1405 as select * from sales.branches1 as of TIMESTAMP TIMESTAMP('2024-05-11 14:05:00.00000');
SQL> select * from sales.branches1_1405 ;
BRANCH_NO BRANCH_NAME AREA_NO ADDRESS EMPLOYEE_COUNT
--------- ---------------------------------------------------------------- ------- ---------------------------------------------------------------- --------------
0001 深圳 40
0101 上海 01 上海市静安区
0102 南京 01 City of Nanjing 70
0103 福州 01
0104 厦门 01 Xiamen
0401 北京 04
0402 天津 04 10
0403 大连 04 大连市 30
0404 沈阳 04
0201 成都 02
0501 武汉 30
0406 江西 4 JiangXi 50
12 rows fetched.
--将需要的数据整合到业务表中
create table sales.branches_bak as select * from sales.branches1_1403;
insert into sales.branches_bak select * from sales.branches1_1405 where BRANCH_NO ='0406';
SQL> ALTER TABLE SALES.BRANCHES RENAME TO BRANCHES_ORG;
Succeed.
SQL> ALTER TABLE SALES.BRANCHES_BAK RENAME TO BRANCHES;
Succeed.
SQL> SELECT * FROM SALES.BRANCHES;
BRANCH_NO BRANCH_NAME AREA_NO ADDRESS EMPLOYEE_COUNT
--------- ---------------------------------------------------------------- ------- ---------------------------------------------------------------- --------------
0001 深圳 40
0101 上海 01 上海市静安区
0102 南京 01 City of Nanjing 70
0103 福州 01
0104 厦门 01 Xiamen
0401 北京 04
0402 天津 04 10
0403 大连 04 大连市 30
0404 沈阳 04
0201 成都 02
0501 武汉 30
0405 贵州 04 Guizhou
0406 江西 4 JiangXi 50
13 rows fetched.
基于闪回+闪回查询
SQL> SELECT * FROM SALES.BRANCHES;
BRANCH_NO BRANCH_NAME AREA_NO ADDRESS EMPLOYEE_COUNT
--------- ---------------------------------------------------------------- ------- ---------------------------------------------------------------- --------------
0001 深圳 40
0101 上海 01 上海市静安区
0102 南京 01 City of Nanjing 70
0103 福州 01
0104 厦门 01 Xiamen
0401 北京 04
0402 天津 04 10
0403 大连 04 大连市 30
0404 沈阳 04
0201 成都 02
0501 武汉 30
0405 贵州 04 Guizhou
12 rows fetched.
delete sales.branches where BRANCH_NO = '0405' and BRANCH_NAME ='贵州';
commit;
delete sales.branches where BRANCH_NO = '0405' and BRANCH_NAME ='贵州';
commit;
SQL>
1 row affected.
SQL>
Succeed.
SQL>
SQL> SELECT * FROM SALES.BRANCHES;
BRANCH_NO BRANCH_NAME AREA_NO ADDRESS EMPLOYEE_COUNT
--------- ---------------------------------------------------------------- ------- ---------------------------------------------------------------- --------------
0001 深圳 40
0101 上海 01 上海市静安区
0102 南京 01 City of Nanjing 70
0103 福州 01
0104 厦门 01 Xiamen
0401 北京 04
0402 天津 04 10
0403 大连 04 大连市 30
0404 沈阳 04
0201 成都 02
0501 武汉 30
11 rows fetched.
SQL> select systimestamp from dual;
SYSTIMESTAMP
----------------------------------------------------------------
2024-05-11 14:23:32.963164
1 row fetched.
insert into sales.branches values('0406','江西',4,'JiangXi',50);
select * from sales.branches ;
BRANCH_NO BRANCH_NAME AREA_NO ADDRESS EMPLOYEE_COUNT
--------- ---------------------------------------------------------------- ------- ---------------------------------------------------------------- --------------
0001 深圳 40
0101 上海 01 上海市静安区
0102 南京 01 City of Nanjing 70
0103 福州 01
0104 厦门 01 Xiamen
0401 北京 04
0402 天津 04 10
0403 大连 04 大连市 30
0404 沈阳 04
0201 成都 02
0501 武汉 30
0406 江西 4 JiangXi 50
12 rows fetched.
SQL> select * from sales.branches as of TIMESTAMP TIMESTAMP('2024-05-11 14:22:32.00000');
BRANCH_NO BRANCH_NAME AREA_NO ADDRESS EMPLOYEE_COUNT
--------- ---------------------------------------------------------------- ------- ---------------------------------------------------------------- --------------
0001 深圳 40
0101 上海 01 上海市静安区
0102 南京 01 City of Nanjing 70
0103 福州 01
0104 厦门 01 Xiamen
0401 北京 04
0402 天津 04 10
0403 大连 04 大连市 30
0404 沈阳 04
0201 成都 02
0501 武汉 30
0405 贵州 04 Guizhou
12 rows fetched.
FLASHBACK TABLE sales.branches TO TIMESTAMP TIMESTAMP('2024-05-11 14:22:32.00000');
CREATE TABLE SALES.branches_1430 as select * from sales.branches as of TIMESTAMP TIMESTAMP('2024-05-11 14:30:11.00000');
SQL> insert into sales.branches select * from SALES.branches_1430 where branch_no='0406';
1 row affected.
SQL> commit;
Succeed.
SQL> select * from sales.branches;
BRANCH_NO BRANCH_NAME AREA_NO ADDRESS EMPLOYEE_COUNT
--------- ---------------------------------------------------------------- ------- ---------------------------------------------------------------- --------------
0001 深圳 40
0101 上海 01 上海市静安区
0102 南京 01 City of Nanjing 70
0103 福州 01
0104 厦门 01 Xiamen
0401 北京 04
0402 天津 04 10
0403 大连 04 大连市 30
0404 沈阳 04
0201 成都 02
0501 武汉 30
0406 江西 4 JiangXi 50
0405 贵州 04 Guizhou
13 rows fetched.
DROP 操作闪回
基于闪回查询:
ALTER SYSTEM SET RECYCLEBIN_ENABLED=ON;DROP TABLE finance_info;DROP TABLE orders_info;DROP TABLE sales_info;DROP TABLE employees;-- 1.查询回收站是否存在finance_info表SELECT original_name,object_name FROM DBA_RECYCLEBIN
WHERE original_name IN ('FINANCE_INFO','ORDERS_INFO','SALES_INFO','EMPLOYEES');
ORIGINAL_NAME OBJECT_NAME
----------------------------- -----------------------
SALES_INFO BIN$2393
ORDERS_INFO BIN$2389
EMPLOYEES BIN$2385
FINANCE_INFO BIN$2408-- 2.表结构及表数据闪回
FLASHBACK TABLE "BIN$2393" TO BEFORE DROP;-- 或使用表的原始名称进行闪回
FLASHBACK TABLE finance_info TO BEFORE DROP;-- 或通过RENAME TO命令指定表的新名称
FLASHBACK TABLE employees TO BEFORE DROP RENAME TO employees_recycle;-- 3.验证相关对象是否保留系统生成的回收站名称,若名称未恢复,请使用ALTER INDEX语句手动修改SELECT INDEX_NAME
FROM USER_INDEXES
WHERE TABLE_NAME = 'FINANCE_INFO';
INDEX_NAME
---------------------------------
IDX_FINANCE_INFO_1
TRUNCATE 操作闪回
ALTER SYSTEM SET RECYCLEBIN_ENABLED=ON;TRUNCATE TABLE product;-- 1.查询回收站是否存在product表SELECT original_name,object_name FROM DBA_RECYCLEBIN WHERE original_name = 'PRODUCT';
ORIGINAL_NAME OBJECT_NAME
----------------------------- -----------------------
PRODUCT PRODUCT
-- 2.表数据闪回
FLASHBACK TABLE product TO BEFORE TRUNCATE;-- 3.验证相关对象是否保留系统生成的回收站名称,若名称未恢复,请使用ALTER INDEX语句手动修改SELECT INDEX_NAME
FROM USER_INDEXES
WHERE TABLE_NAME = 'PRODUCT';
INDEX_NAME
--------------------------
SYS_C_133
合集:
YashanDB知识库
标签:
数据库
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库