企业如何通过vue小程序开发满足高效运营与合规性需求
523
2023-11-27
[oracle@rhel5 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Nov 30 22:56:46 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining optionsSQL>
查看数据库能闪回到的最早的scn,如果数据库没有开闪回功能是没有记录返回的。
SQL> select oldest_flashback_scn from v$flashback_database_log;no rows selected
查看数据库是否开闪回
SQL> select flashback_on from v$database;FLASHBACK_ON
------------------
NO数据库open状态尝试开启数据库的闪回功能,返回报错信息说明需要在mount状态下来操作。
SQL> alter database flashback on;
alter database flashback on
*
ERROR at line 1:
ORA-38759: Database must be mounted by only one instance and not open.关闭数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.打开数据库到mount状态
SQL> startup mount
ORACLE instance started.Total System Global Area 184549376 bytes
Fixed Size 1218412 bytes
Variable Size 83888276 bytes
Database Buffers 96468992 bytes
Redo Buffers 2973696 bytes
Database mounted.数据库在mount状态下再次尝试开启数据库的闪回功能,又返回错误信息说明数据库在非归档状态下不支持数据库的闪回。
SQL> alter database flashback on;
alter database flashback on
*
ERROR at line 1:
ORA-38706: Cannot turn on FLASHBACK DATABASE logging.
ORA-38707: Media recovery is not enabled.开归档
SQL> alter database archivelog;Database altered.
开闪回成功
SQL> alter database flashback on;Database altered.
打开数据库
SQL> alter database open;Database altered.
开启归档,默认的归档目录:USE_DB_RECOVERY_FILE_DEST ,与9i不同10g开启归档很要简单一些。以后可以自行修改归档目录的位置,在此暂时保留默认。
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 59
Next log sequence to archive 61
Current log sequence 61检验数据库闪回是否开启
SQL> select flashback_on from v$database;FLASHBACK_ON
------------------
YES查看闪回区信息,默认安装大小为2G,根据数据库的具体情况作修改。
SQL> show parameter recoverNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/flash_recovery_area
db_recovery_file_dest_size big integer 20G
recovery_parallelism integer 0数据库可以恢复到多少分钟以前,默认1440分钟(一天)
SQL> show parameter flashNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target integer 1440查看数据库能恢复到最早的scn,和最早的时间
SQL> select oldest_flashback_scn,oldest_flashback_time from v$flashback_database_log;OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TIME
-------------------- ---------------------
1021372 20101130 23:07:18在oracle 10g中,如果是使用drop 把表对象删除了,会把这个对象放在回收站里
查看回收站:select * from recyclebin;
然后恢复对象:flashback table TABLENAME to before drop;
删除不放回回收站:drop table TABLENAME purge;据。但要注意:flashback table 需要下面几个条件:
1. 需要有flashback any table的系统权限或者是flashback这个表的对象权限;
2. 需要有对这个表的基本的dml,alter操作权限;
3. 必须保证该表row movement(这主要是让flashback记住表的rowid)注意:
ORA-08189: cannot flashback the table because row movement is not enabled
但是抛出了8189错误,原因就是因为表没有row movement,改变下表的属性:
SQL> alter table test_tablename enable row movement;
再执行闪回操作;CREATE TABLE TBL_TEST
(
ID NUMBER,
NAME VARCHAR2(100 BYTE),
PID NUMBER DEFAULT 0
);INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(1,10,0);
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(2,11,1);
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(3,20,0);
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(4,12,1);
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES(5,121,2);3.恢复误删除的表数据
例如:
FlashBack table TBL_TEST to timestamp to_timestamp(2009-8-1 16:59:36,yyyy-mm-ddhh24:mi:ss);
报错:ORA-08189: cannot flashback the table because row movement is not enabled错误解决,要执行:alter table TBL_TEST enable row movement;
FlashBack table TBL_TEST to timestamp to_timestamp(2009-8-1 16:59:36,yyyy-mm-dd4.恢复误表数据错误的修改:
例如:
update TBL_TEST set pid=1 where id =5;
FlashBack table TBL_TEST to timestamp to_timestamp(2009-8-1 16:59:36,yyyy-mm-dd5.恢复被删除表的步骤:
(1)显示回收站信息
select * from RECYCLEBIN;
(2)确定被删除表存在后,可以恢复诶删除表,此时可以指定表明或者回收站对象名
flashback table TBL_TEST to before drop;
或 flashback table "BIN$zgwx7wCsQ92JRcrAVpABQg==$0" to before drop
6.恢复被删除表的同时可以改变被删除表的名称
flashback table TBL_TEST to before drop rename to test_TBL_TEST
或 flashback table "BIN$zgwx7wCsQ92JRcrAVpABQg==$0" to before drop rename to test_TBL_TEST
7.删除不放回回收站:
drop table TBL_TEST purge;本文出自 “在路上” 博客,请务必保留此出处http://yuwenhu.blog.**.com/672091/186601
================================flash back 闪回测试================================
--1. 开启功能
SQL> shutdown immediate
已经卸载数据库。
例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 146803588 bytes
Database Buffers 457179136 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL>alter database archivelog;
数据库已更改。
SQL>alter database on ;
数据库已更改。
SQL> alter database open;
数据库已更改。SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 773
下一个存档日志序列 775
当前日志序列 775
SQL> show parameter db_recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string C:\oracle\product\10.2.0/flash_recovery_area
db_recovery_file_dest_size big integer 2G
--闪回相关文件及文件大小SQL> show parameter flashback
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target integer 1440
--默认支持闪回的时间,单位为分。SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
YESSQL> col program format a18
SQL> col pid format 99
SQL> select program,pid,spid,background,pga_used_mem,pga_alloc_mem,pga_freeable_mem,pga_max_mem
2 from v$process where program like %RVWR%;PROGRAM PID SPID B PGA_USED_MEM PGA_ALLOC_MEM PGA_FREEABLE_MEM PGA_MAX_MEM
------------------ --- ------------ - ------------ ------------- ---------------- -----------
ORACLE.EXE (RVWR) 16 2924 1 206881 623853 0 623853SQL> select * from v$sgastat where name like %flashback%;
POOL NAME BYTES
------------ -------------------------- ----------
shared pool flashback generation buff 3981204SQL> select * from v$sysstat where name like %flashback log%;
STATISTIC# NAME CLASS VALUE STAT_ID
---------- ---------------------------------------------------------------- ---------- ---------- ----------
168 flashback log writes 2 11 3123176560
SQL> create table yangxl as select * from dba_objects;
表已创建。SQL> select count(1) from yangxl;
COUNT(1)
----------
52511SQL> alter session set nls_date_format=YYYY-MM-DD HH24:MI:SS;
会话已更改。SQL> select sysdate from dual;
SYSDATE
-------------------
2009-06-04 11:06:12
SQL> truncate table yangxl;
表被截断。
SQL> select * from yangxl;SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 150997892 bytes
Database Buffers 452984832 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。SQL> flashback database to timestamp to_timestamp(2009-06-04 11:06:12,yyyy-mm-dd hh24:mi:ss);
闪回完成。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项SQL> alter database open resetlogs;
数据库已更改。SQL> select count(*) from yangxl;
COUNT(*)
----------
52511SQL> select object_name,original_name,type from user_recyclebin;
未选定行SQL> drop table yangxl;
表已删除。OBJECT_NAME ORIGINAL_NAME TYPE
------------------------------ -------------------------------- -------------------------
BIN$93EgIpKgQb2UYDLGbvb7tQ==$0 YANGXL TABLE
BIN$9Bl7UGOgT36SmT9+7g7ijQ==$0 YANGXL TABLE
BIN$QlDzOZx8TWmM+YuaXYWIrA==$0 YANGXL TABLE
BIN$gr27sKM4T5imRUIE4Lu1eQ==$0 YANGXL TABLE
BIN$wSaMD+dxQxqEqR1RG/bJKA==$0 YANGXL TABLESQL> flashback table yangxl to before drop;
闪回完成。SQL> select count(1) from yangxl;
COUNT(1)
----------
9--闪回表都可以,闪回数据肯定是没有问题的了。
SQL> select count(1) from yangxl;
COUNT(1)
----------
9
SQL> delete from yangxl where rownum = 1;
已删除 1 行。SQL> commit;
提交完成。SQL> flashback table yangxl to timestamp to_timestamp(2009-06-04 13:07:01,yyyy-mm-dd hh24:mi:ss);
flashback table yangxl to timestamp to_timestamp(2009-06-04 13:07:01,yyyy-mm-dd hh24:mi:ss) *
第 1 行出现错误:
ORA-08189: 因为未启用行移动功能, 不能闪回表SQL> alter table yangxl enable row movement;
表已更改。SQL> flashback table yangxl to timestamp to_timestamp(2009-06-04 13:07:01,yyyy-mm-dd hh24:mi:ss);
闪回完成。SQL> select count(1) from yangxl;
COUNT(1)
----------
9
--6. 回收站SQL> show parameter recyclebin
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
recyclebin string onSQL> alter system set recyclebin = off;
系统已更改。SQL> show parameter recyclebin
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
recyclebin string OFFSQL> alter system set recyclebin = on;
系统已更改。purge user_recyclebin;
SQL> purge user_recyclebin;
回收站已清空。SQL> select * from user_recyclebin;
未选定行purge dba_recyclebin;
SQL> purge dba_recyclebin;
DBA 回收站已清空。--清空本用户回收站和所有用户回收站(需SYS权限)
purge table <表名>;
SQL> purge table yangxl;
表已清除。purge index <表名>;
SQL> purge index ind_yxl;
索引已清除。从回收站清除表和索引
注:如果清除的对象在回收站中有同名的,那么会清除在回收站中时间更久的那个对象来自 “ ITPUB博客 ” ,链接:http://blog.itpub-/9390331/viewspace-694380/,如需转载,请注明出处,否则将追究法律责任。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~