TSPITR方式数据库找回误操作丢失的数据

简介:

一、TSPITR介绍

        TSPITR全称是Tablespace Point In Time Recover(表空间基于时间点的不完全恢复)。原理是通过辅助实例基于时间还原出误操作前的数据通过DataPump将数据导入到目标数据库。TSPITR的最大好处是不需要生产库停机。

二、适用场景

表空间时点恢复适用用以下场景:
    ①错误的批处理作业或数据操作语言DML
    ②恢复数据定义语言(DDL)后丢失的数据操作,改变表的结构。不能使用闪回表将表倒回结构更改点之前,例如截断表(truncate)操作。
    ③恢复drop时使用了purge选项的表
    ④恢复存在逻辑错误的表
    ⑤恢复被删除的表空间,RMAN可以在被drop的表空间上面执行TSPITR
    ⑥与全库级别闪回相比,表空间时点恢复停留在表空间级别,影响较全库闪回较小。其次,数据库闪回功能需要承担维护闪回日志开启的相关性能开销。

三、TSPITR前提

1、有一套有效全库备份,因为TSPITR这个过程除了复制需要恢复的表空间外,也必须复制system,sysaux和undo表空间
2、需要回复的表空间需要自包含,可以通过TS_PITR_CHECK视图查看自包含信息。表空间上存在约束关系(依赖)表的情形,依赖关系所在的表空间也需要一同做时点恢复(如外键参照,不在同一时点,则违反参照约束)
3、对于索引与数据分离的表空间在时点恢复时,应先删除索引
4、不能恢复数据库当前的缺省表空间
5、不能恢复以下对象:
    ①存在依赖关系的物化视图,分区表等(如果要恢复,先解决依赖)
    ②undo表空间,undo段
    ③sys模式下的对象(如PL/SQL,views, synonyms, users…)

四、测试过程

1、对全库做一个全备(之前做过全库备份并且有效这步可以忽略)

RMAN> backup database format '/u01/rman_bak/all_db_%U.bak';

启动 backup 于 2018-07-29 19:19:31
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=/u01/app/oracle/oradata/vbox66db/system01.dbf
输入数据文件: 文件号=00002 名称=/u01/app/oracle/oradata/vbox66db/sysaux01.dbf
输入数据文件: 文件号=00003 名称=/u01/app/oracle/oradata/vbox66db/undotbs01.dbf
输入数据文件: 文件号=00004 名称=/u01/app/oracle/oradata/vbox66db/users01.dbf
输入数据文件: 文件号=00005 名称=/u01/app/oracle/oradata/vbox66db/test01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 2018-07-29 19:19:31
通道 ORA_DISK_1: 已完成段 1 于 2018-07-29 19:21:37
段句柄=/u01/rman_bak/all_db_0kt98563_1_1.bak 标记=TAG20180729T191931 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:02:06
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
备份集内包括当前控制文件
备份集内包括当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 2018-07-29 19:21:44
通道 ORA_DISK_1: 已完成段 1 于 2018-07-29 19:21:45
段句柄=/u01/rman_bak/all_db_0lt985a1_1_1.bak 标记=TAG20180729T191931 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 2018-07-29 19:21:45

RMAN> 

2、创建一个测试表空间

①创建testdb表空间

SYS@vbox66in>create tablespace testdb datafile '/u01/app/oracle/oradata/vbox66db/testdb01.dbf' size 100M autoextend on;

表空间已创建。

SYS@vbox66in>select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/vbox66db/system01.dbf
/u01/app/oracle/oradata/vbox66db/sysaux01.dbf
/u01/app/oracle/oradata/vbox66db/undotbs01.dbf
/u01/app/oracle/oradata/vbox66db/users01.dbf
/u01/app/oracle/oradata/vbox66db/test01.dbf
/u01/app/oracle/oradata/vbox66db/testdb01.dbf

已选择6行。

SYS@vbox66in>

SYS@vbox66in>alter user scott default tablespace testdb;

用户已更改。

②创建测试表

SCOTT@vbox66in>create table test01 tablespace testdb as select * from emp;

表已创建。

SCOTT@vbox66in>create table test02 tablespace testdb as select * from dept;

表已创建。
SCOTT@vbox66in>alter table test01 add primary key(empno);

表已更改。

SCOTT@vbox66in>alter table test02 add primary key(deptno);

表已更改。

SCOTT@vbox66in>alter table test01 add constraints test01_fk foreign key(deptno) references test02(deptno);

表已更改。

SCOTT@vbox66in>

SCOTT@vbox66in>commit;

提交完成。

SCOTT@vbox66in>

③RMAN备份testdb表空间

RMAN> backup tablespace testdb format '/u01/rman_bak/testdb_%U.bak';

启动 backup 于 2018-07-29 21:01:53
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00006 名称=/u01/app/oracle/oradata/vbox66db/testdb01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 2018-07-29 21:01:53
通道 ORA_DISK_1: 已完成段 1 于 2018-07-29 21:01:54
段句柄=/u01/rman_bak/testdb_0mt98b61_1_1.bak 标记=TAG20180729T210153 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 2018-07-29 21:01:54

RMAN> 

④取当前时间,以便之后还原时用

SCOTT@vbox66in>select sysdate from dual;

SYSDATE
-------------------
2018-07-29 21:03:31

SCOTT@vbox66in>

⑤误操作删除表test01、test02数据(这里是测试,)

SCOTT@vbox66in>truncate table test02;

表被截断。

SCOTT@vbox66in>truncate table test01;

表被截断。

SCOTT@vbox66in>select * from test01;

未选定行

SCOTT@vbox66in>select * from test02;

未选定行

SCOTT@vbox66in>

⑥建立目录指定辅助库目标,

[oracle@vbox66 ~]$ mkdir -p /tmp/auxdata
[oracle@vbox66 ~]$ ll /tmp/auxdata/
总计 0
[oracle@vbox66 ~]$ ll -d /tmp/auxdata/
drwxr-xr-x 2 oracle oinstall 4096 07-29 21:16 /tmp/auxdata/

⑦做RMAN TSPITR 并指定辅助库目的地

RMAN> recover tablespace testdb until time '2018-07-29 22:11:35' auxiliary destination '/tmp/auxdata';    //这个时间和上面记录的有点出入,因为期间修改过一次,道理上一致
启动 recover 于 2018-07-29 22:15:28
使用通道 ORA_DISK_1
RMAN-05026: 警告: 假定以下表空间集适用于指定的时间点

表空间列表要求具有 UNDO 段
表空间 SYSTEM
表空间 UNDOTBS1

使用 SID='Fcny' 创建自动实例

供自动实例使用的初始化参数:
db_name=VBOX66DB
db_unique_name=Fcny_tspitr_VBOX66DB
compatible=11.2.0.4.0
db_block_size=8192
db_files=200
sga_target=1G
processes=80
db_create_file_dest=/tmp/auxdata
log_archive_dest_1='location=/tmp/auxdata'
#No auxiliary parameter file used


启动自动实例 VBOX66DB

Oracle 实例已启动

系统全局区域总计    1068937216 字节

Fixed Size                     2260088 字节
Variable Size                281019272 字节
Database Buffers             780140544 字节
Redo Buffers                   5517312 字节
自动实例已创建
对恢复集表空间运行 TRANSPORT_SET_CHECK
TRANSPORT_SET_CHECK 已成功完成

内存脚本的内容:
{
# set requested point in time
set until  time "2018-07-29 22:11:35";
# restore the controlfile
restore clone controlfile;
# mount the controlfile
sql clone 'alter database mount clone database';
# archive current online log 
sql 'alter system archive log current';
# avoid unnecessary autobackups for structural changes during TSPITR
sql 'begin dbms_backup_restore.AutoBackupFlag(FALSE); end;';
}
正在执行内存脚本

正在执行命令: SET until clause

启动 restore 于 2018-07-29 22:15:43
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: SID=19 设备类型=DISK

通道 ORA_AUX_DISK_1: 正在开始还原数据文件备份集
通道 ORA_AUX_DISK_1: 正在还原控制文件
通道 ORA_AUX_DISK_1: 正在读取备份片段 /u01/rman_bak/full_db_0pt98f62_1_1.bak
通道 ORA_AUX_DISK_1: 段句柄 = /u01/rman_bak/full_db_0pt98f62_1_1.bak 标记 = TAG20180729T220804
通道 ORA_AUX_DISK_1: 已还原备份片段 1
通道 ORA_AUX_DISK_1: 还原完成, 用时: 00:00:01
输出文件名=/tmp/auxdata/VBOX66DB/controlfile/o1_mf_fovm0jqt_.ctl
完成 restore 于 2018-07-29 22:15:45

sql 语句: alter database mount clone database

sql 语句: alter system archive log current

sql 语句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;

内存脚本的内容:
{
# set requested point in time
set until  time "2018-07-29 22:11:35";
plsql <<<-- tspitr_2
declare
  sqlstatement       varchar2(512);
  offline_not_needed exception;
  pragma exception_init(offline_not_needed, -01539);
begin
  sqlstatement := 'alter tablespace '||  'TESTDB' ||' offline immediate';
  krmicd.writeMsg(6162, sqlstatement);
  krmicd.execSql(sqlstatement);
exception
  when offline_not_needed then
    null;
end; >>>;
# set destinations for recovery set and auxiliary set datafiles
set newname for clone datafile  1 to new;
set newname for clone datafile  3 to new;
set newname for clone datafile  2 to new;
set newname for clone tempfile  1 to new;
set newname for datafile  6 to 
 "/u01/app/oracle/oradata/vbox66db/testdb01.dbf";
# switch all tempfiles
switch clone tempfile all;
# restore the tablespaces in the recovery set and the auxiliary set
restore clone datafile  1, 3, 2, 6;
switch clone datafile all;
}
正在执行内存脚本

正在执行命令: SET until clause

sql 语句: alter tablespace TESTDB offline immediate

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

临时文件 1 在控制文件中已重命名为 /tmp/auxdata/VBOX66DB/datafile/o1_mf_temp_%u_.tmp

启动 restore 于 2018-07-29 22:15:56
使用通道 ORA_AUX_DISK_1

通道 ORA_AUX_DISK_1: 正在开始还原数据文件备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_AUX_DISK_1: 将数据文件 00001 还原到 /tmp/auxdata/VBOX66DB/datafile/o1_mf_system_%u_.dbf
通道 ORA_AUX_DISK_1: 将数据文件 00003 还原到 /tmp/auxdata/VBOX66DB/datafile/o1_mf_undotbs1_%u_.dbf
通道 ORA_AUX_DISK_1: 将数据文件 00002 还原到 /tmp/auxdata/VBOX66DB/datafile/o1_mf_sysaux_%u_.dbf
通道 ORA_AUX_DISK_1: 将数据文件 00006 还原到 /u01/app/oracle/oradata/vbox66db/testdb01.dbf
通道 ORA_AUX_DISK_1: 正在读取备份片段 /u01/rman_bak/full_db_0ot98f25_1_1.bak
通道 ORA_AUX_DISK_1: 段句柄 = /u01/rman_bak/full_db_0ot98f25_1_1.bak 标记 = TAG20180729T220804
通道 ORA_AUX_DISK_1: 已还原备份片段 1
通道 ORA_AUX_DISK_1: 还原完成, 用时: 00:02:25
完成 restore 于 2018-07-29 22:18:21

数据文件 1 已转换成数据文件副本
输入数据文件副本 RECID=4 STAMP=982793902 文件名=/tmp/auxdata/VBOX66DB/datafile/o1_mf_system_fovm0ws4_.dbf
数据文件 3 已转换成数据文件副本
输入数据文件副本 RECID=5 STAMP=982793902 文件名=/tmp/auxdata/VBOX66DB/datafile/o1_mf_undotbs1_fovm0wsx_.dbf
数据文件 2 已转换成数据文件副本
输入数据文件副本 RECID=6 STAMP=982793902 文件名=/tmp/auxdata/VBOX66DB/datafile/o1_mf_sysaux_fovm0wsb_.dbf

内存脚本的内容:
{
# set requested point in time
set until  time "2018-07-29 22:11:35";
# online the datafiles restored or switched
sql clone "alter database datafile  1 online";
sql clone "alter database datafile  3 online";
sql clone "alter database datafile  2 online";
sql clone "alter database datafile  6 online";
# recover and open resetlogs
recover clone database tablespace  "TESTDB", "SYSTEM", "UNDOTBS1", "SYSAUX" delete archivelog;
alter clone database open resetlogs;
}
正在执行内存脚本

正在执行命令: SET until clause

sql 语句: alter database datafile  1 online

sql 语句: alter database datafile  3 online

sql 语句: alter database datafile  2 online

sql 语句: alter database datafile  6 online

启动 recover 于 2018-07-29 22:18:22
使用通道 ORA_AUX_DISK_1

正在开始介质的恢复

线程 1 序列 22 的归档日志已作为文件 /u01/app/oracle/oradata/arch/1_22_974146828.dbf 存在于磁盘上
归档日志文件名=/u01/app/oracle/oradata/arch/1_22_974146828.dbf 线程=1 序列=22
介质恢复完成, 用时: 00:00:02
完成 recover 于 2018-07-29 22:18:25

数据库已打开

内存脚本的内容:
{
# make read only the tablespace that will be exported
sql clone 'alter tablespace  TESTDB read only';
# create directory for datapump import
sql "create or replace directory TSPITR_DIROBJ_DPDIR as ''
/tmp/auxdata''";
# create directory for datapump export
sql clone "create or replace directory TSPITR_DIROBJ_DPDIR as ''
/tmp/auxdata''";
}
正在执行内存脚本

sql 语句: alter tablespace  TESTDB read only

sql 语句: create or replace directory TSPITR_DIROBJ_DPDIR as ''/tmp/auxdata''

sql 语句: create or replace directory TSPITR_DIROBJ_DPDIR as ''/tmp/auxdata''

正在执行元数据导出...
   EXPDP> 启动 "SYS"."TSPITR_EXP_Fcny":  
   EXPDP> 处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
   EXPDP> 处理对象类型 TRANSPORTABLE_EXPORT/TABLE
   EXPDP> 处理对象类型 TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT
   EXPDP> 处理对象类型 TRANSPORTABLE_EXPORT/INDEX_STATISTICS
   EXPDP> 处理对象类型 TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINT
   EXPDP> 处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
   EXPDP> 已成功加载/卸载了主表 "SYS"."TSPITR_EXP_Fcny" 
   EXPDP> ******************************************************************************
   EXPDP> SYS.TSPITR_EXP_Fcny 的转储文件集为:
   EXPDP>   /tmp/auxdata/tspitr_Fcny_42764.dmp
   EXPDP> ******************************************************************************
   EXPDP> 可传输表空间 TESTDB 所需的数据文件:
   EXPDP>   /u01/app/oracle/oradata/vbox66db/testdb01.dbf
   EXPDP> 作业 "SYS"."TSPITR_EXP_Fcny" 已于 星期日 7月 29 22:20:31 2018 elapsed 0 00:01:15 成功完成
导出完毕


内存脚本的内容:
{
# shutdown clone before import
shutdown clone immediate
# drop target tablespaces before importing them back
sql 'drop tablespace  TESTDB including contents keep datafiles cascade constraints';
}
正在执行内存脚本

数据库已关闭
数据库已卸装
Oracle 实例已关闭

sql 语句: drop tablespace  TESTDB including contents keep datafiles cascade constraints

正在执行元数据导入...
   IMPDP> 已成功加载/卸载了主表 "SYS"."TSPITR_IMP_Fcny" 
   IMPDP> 启动 "SYS"."TSPITR_IMP_Fcny":  
   IMPDP> 处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
   IMPDP> 处理对象类型 TRANSPORTABLE_EXPORT/TABLE
   IMPDP> 处理对象类型 TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT
   IMPDP> 处理对象类型 TRANSPORTABLE_EXPORT/INDEX_STATISTICS
   IMPDP> 处理对象类型 TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINT
   IMPDP> 处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
   IMPDP> 作业 "SYS"."TSPITR_IMP_Fcny" 已于 星期日 7月 29 22:21:27 2018 elapsed 0 00:00:10 成功完成
导入完毕


内存脚本的内容:
{
# make read write and offline the imported tablespaces
sql 'alter tablespace  TESTDB read write';
sql 'alter tablespace  TESTDB offline';
# enable autobackups after TSPITR is finished
sql 'begin dbms_backup_restore.AutoBackupFlag(TRUE); end;';
}
正在执行内存脚本

sql 语句: alter tablespace  TESTDB read write

sql 语句: alter tablespace  TESTDB offline

sql 语句: begin dbms_backup_restore.AutoBackupFlag(TRUE); end;

删除自动实例
自动实例已删除
已删除辅助实例文件 /tmp/auxdata/VBOX66DB/datafile/o1_mf_temp_fovm638r_.tmp
已删除辅助实例文件 /tmp/auxdata/VBOX66DB/onlinelog/o1_mf_3_fovm5vqb_.log
已删除辅助实例文件 /tmp/auxdata/VBOX66DB/onlinelog/o1_mf_2_fovm5p7q_.log
已删除辅助实例文件 /tmp/auxdata/VBOX66DB/onlinelog/o1_mf_1_fovm5krt_.log
已删除辅助实例文件 /tmp/auxdata/VBOX66DB/datafile/o1_mf_sysaux_fovm0wsb_.dbf
已删除辅助实例文件 /tmp/auxdata/VBOX66DB/datafile/o1_mf_undotbs1_fovm0wsx_.dbf
已删除辅助实例文件 /tmp/auxdata/VBOX66DB/datafile/o1_mf_system_fovm0ws4_.dbf
已删除辅助实例文件 /tmp/auxdata/VBOX66DB/controlfile/o1_mf_fovm0jqt_.ctl
完成 recover 于 2018-07-29 22:21:32

RMAN> 

⑧查看表的数据

SYS@vbox66in>alter tablespace testdb online;

表空间已更改。

SYS@vbox66in>conn scott/tiger;
已连接。
SCOTT@vbox66in>select * from test01;

 EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
  7369 SMITH      CLERK           7902 1980-12-17 00:00:00        800                    20
  7499 ALLEN      SALESMAN        7698 1981-02-20 00:00:00       1600        300         30
  7521 WARD       SALESMAN        7698 1981-02-22 00:00:00       1250        500         30
  7566 JONES      MANAGER         7839 1981-04-02 00:00:00       2975                    20
  7654 MARTIN     SALESMAN        7698 1981-09-28 00:00:00       1250       1400         30
  7698 BLAKE      MANAGER         7839 1981-05-01 00:00:00       2850                    30
  7782 CLARK      MANAGER         7839 1981-06-09 00:00:00       2450                    10
  7788 SCOTT      ANALYST         7566 1987-04-19 00:00:00       3000                    20
  7839 KING       PRESIDENT            1981-11-17 00:00:00       5000                    10
  7844 TURNER     SALESMAN        7698 1981-09-08 00:00:00       1500          0         30
  7876 ADAMS      CLERK           7788 1987-05-23 00:00:00       1100                    20

 EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
  7900 JAMES      CLERK           7698 1981-12-03 00:00:00        950                    30
  7902 FORD       ANALYST         7566 1981-12-03 00:00:00       3000                    20
  7934 MILLER     CLERK           7782 1982-01-23 00:00:00       1300                    10

已选择14行。

SCOTT@vbox66in>select * from test02;

DEPTNO DNAME          LOC
---------- -------------- -------------
    10 ACCOUNTING     NEW YORK
    20 RESEARCH       DALLAS
    30 SALES          CHICAGO
    40 OPERATIONS     BOSTON

SCOTT@vbox66in>

此时发现数据已经全部恢复。

相关文章
|
8天前
|
存储 SQL 监控
Visual Basic与数据库交互:实现数据访问和管理
【4月更文挑战第27天】本文探讨了使用Visual Basic进行数据库编程的基础,包括数据库基础、连接、数据访问技术如ADO.NET,数据绑定,事务处理,存储过程与视图。还强调了性能优化、安全性、测试与调试,以及持续维护的重要性。通过掌握这些概念和技巧,开发者能构建高效、可靠的数据驱动应用。
|
10天前
|
关系型数据库 数据库
关系型数据库的数据完整性
关系型数据库通过一系列机制和技术手段来确保数据的完整性,从而为用户提供准确、一致和可靠的数据服务。这些措施对于保障数据的质量、满足用户需求以及维护系统的稳定运行具有重要意义。
16 5
|
13天前
|
存储 安全 数据管理
新型数据库技术:基于区块链的分布式数据存储系统
传统数据库系统面临着中心化管理、数据安全性和可信度等方面的挑战。本文介绍了一种基于区块链技术的新型数据库系统,通过分布式存储和去中心化的特性,提高了数据的安全性和可信度,同时实现了高效的数据管理和共享。该系统在多个领域如金融、医疗和物联网等具有广阔的应用前景。
|
24天前
|
存储 监控 安全
数据库数据的保密性
【4月更文挑战第9天】数据库保密性关键在于限制未授权访问和保护数据不泄露。措施包括访问控制、加密、数据脱敏、备份恢复、审计监控及安全配置等,确保数据安全和用户隐私。
27 2
|
12天前
|
关系型数据库 Apache 流计算
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
本文介绍了如何将数据从 OceanBase 迁移到阿里云数据库 SelectDB 内核版 Apache Doris。提供 3 种数据同步方法 1. 使用 DataX,下载 DataX 并编写配置文件,通过 OceanBaseReader 和 DorisWriter 进行数据迁移。 2. 利用 Apache Doris 的 Catalog功 能,将 OceanBase 表映射到 Doris 并插入数据。 3. 通过Flink CDC,设置 OceanBase 环境,配置 Flink 连接器,实现实时数据同步。
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
|
13天前
|
SQL Oracle 关系型数据库
关系型数据库根据某些条件修改数据
SQL的`UPDATE`语句用于根据条件修改关系型数据库(如MySQL、PostgreSQL、Oracle)中的数据。基本语法是:`UPDATE 表名 SET 列名=新值 WHERE 条件`。例如,要将`students`表中名字为&quot;John Doe&quot;的学生年龄改为25,可以使用`UPDATE students SET age = 25 WHERE name = &#39;John Doe&#39;`。执行`UPDATE`前需备份数据,先在测试环境验证,并考虑事务处理以确保数据安全。注意优化表结构和使用索引来提升性能。
14 3
|
4天前
|
DataWorks Oracle 关系型数据库
DataWorks操作报错合集之尝试从Oracle数据库同步数据到TDSQL的PG版本,并遇到了与RAW字段相关的语法错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
18 0
|
24天前
|
缓存 NoSQL 算法
17- 数据库有1000万数据 ,Redis只能缓存20w数据, 如何保证Redis中的数据都是热点数据 ?
保证Redis中的20w数据为热点数据,可以通过设置Redis的LFU(Least Frequently Used)淘汰策略。这样,当数据库有1000万数据而Redis仅能缓存20w时,LFU会自动移除使用频率最低的项,确保缓存中的数据是最常使用的。
56 8
|
3天前
|
SQL 关系型数据库 MySQL
【MySQL-1】理解关系型数据库&数据的数据模型
【MySQL-1】理解关系型数据库&数据的数据模型
|
5天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在使用 DataWorks 数据集成同步 PostgreSQL 数据库中的 Geometry 类型数据如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
13 0