执行完全恢复:在 ARCHIVELOG 模式下 丢失了系统关键数据文件: 如果某个数据文件丢失或损坏,且该文件属于 SYSTEM 或 UNDO 表空间,请执行以下步骤: 1. 实例可能会也可能不会自动关闭。 2.如果未自动关闭,请使用 SHUTDOWN ABORT 关闭实例。 3. 装载数据库
执行完全恢复:在 ARCHIVELOG 模式下 丢失了系统关键数据文件:
如果某个数据文件丢失或损坏,且该文件属于 SYSTEM 或 UNDO 表空间,请执行以下步骤:
1.
实例可能会也可能不会自动关闭。
2.如果未自动关闭,请使用 SHUTDOWN ABORT 关闭实例。
3.
装载数据库。
4.
还原并恢复缺失的数据文件。
5.打开数据库。
1.归档模式丢失非关键数据文件 完全恢复
第一种方法:
shutdown abort;
startup mount;
alter database create datafile '/home/oracle/test.dbf' as '/home/oracle/test.dbf';
recover datafile;
第二种方法:
create tablespace test datafile '/home/oracle/test.dbf' size 10m;
rman target /
backup datafile 5;
rm test.dbf
sq> alter database datafile 5 offline;
restore datafile 5;
recover datafile 5;
sq> alter database datafile 5 online;
select FILE#,STATUS from v$datafile;
2. 归档模式丢失关键数据文件 完全恢复
利用备份,同上第二种方法。
--------------------------------------------------------------------------------------------------------------
恢复映像副本:
RMAN> recover copy of database with tag 'daily_inc';
RMAN> backup incremental level 1 for recover of copy
with tag 'daily_inc' database;
RECOVER BACKUP
第 1 天 无 创建映像副本
第 2 天 无 创建 1 级增量备份
第 3 天和以后 根据增量备份恢复副本 创建 1 级增量备份
恢复映像副本:示例
如果每天都运行以上命令,则可以随时获得所有数据库数据文件的连续更新的映像副本。
图表显示了每次运行所发生的操作。请注意,这种算法需要一段准备期间;到第 3 天后策略才会起作用。
第 1 天
RECOVER 命令没有执行任何操作。尚不存在要恢复的映像副本。BACKUP 命令可用于创建映像副本。
第 2 天
RECOVER 命令仍没有执行任何操作。因为尚不存在增量备份。由于已在第 1 天创建了基准映像副本,BACKUP 命令会创建增量备份。
第 3 天
RECOVER 命令将增量备份中的更改应用于映像副本。BACKUP 命令将执行另一个增量备份,该备份将在第 4 天用于恢复映像副本,依此进行循环。
执行到映像副本的快速切换
执行以下步骤
可以使用数据文件的映像副本进行快速恢复:
1.使数据文件脱机。
2.使用 SWITCH TO ...COPY 命令指向这些文件的映像副本。
3.恢复数据文件。
4.使数据文件联机。
此时,数据库是可用的,且数据文件已恢复。但是,如果您希望将数据文件放回其原始位置,请继续执行以下步骤:
5.使用 BACKUP AS COPY 命令在原始位置创建数据文件的映像副本。
6.使数据文件脱机。
7.使用 SWITCH TO COPY 命令切换到在步骤 5 中创建的副本。
8.恢复数据文件。
9.使数据文件联机。
可以使用此命令来恢复数据文件、表空间、临时文件或整个数据库。切换到的目标文件必须为映像副本。
3. 映像副本的快速切换
backup as copy datafile 6;
rm a.dbf
sql:alter database datafile 6 offline;
rman >switch datafile '/home/oracle/test.dbf' to copy;
recover datafile 6;
--回复后数据文件的路径和名称为 '/home/oracle/test.dbf';
alter database datafile 4 online;
select FILE#,STATUS from v$datafile;
select file_name from dba_data_files;
backup as copy datafile 4 format '/u01/app/oracle/oradata/orcln/users01.dbf';
alter database datafile 4 offline;
switch datafile ' /home/oracle/backup/db_data_D-ORCL_I-4115975543_TS-TEST_FNO-6_38otbf5q.bak' to copy;
switch datafile 4 to copy;
recover datafile 4;
alter database datafile 4 online;
select file_name from dba_data_files;
-----------------------------------------------------------------------------------------------------------------
4. set newname 改名字
backup as copy datafile 6;
list copy of datafile 6;
select FILE#,STATUS from v$datafile;
run{
allocate channel c1 device type disk;
sql "alter database datafile 6 offline";
set newname for datafile '/home/oracle/test.dbf' to '/home/oracle/test_new.dbf';
restore datafile 6;
switch datafile all;
recover datafile 6;
sql "alter database datafile 6 online";
}
--------------------------------------------------------------------------------------------------------------
从自动备份还原控制文件:
RMAN> STARTUP NOMOUNT;
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;
RMAN> ALTER DATABASE MOUNT;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN RESETLOGS;
7. 丢失控制文件,参数文件 --数据库必须在nomount状态
查看文件信息:
SQL>select name from v$controlfile;
SQL>show parameter spfile;
SQL> select name from v$datafile;
配置控制文件自动备份恢复控制文件
rman target /
connected to target database: ORCL (DBID=1353286769)
RMAN>show all;
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP ON;
数据库全备份:
RMAN>backup as compressed backupset full database;
删除,参数文件,控制文件,数据文件
rm /opt/oracle/oradata/orcl/control01.ctl
rm /opt/oracle/flash_recovery_area/orcl/control02.ctl
rm /opt/oracle/oradata/orcl/control03.ctl
rm /opt/oracle/product/11.2.2/dbs/spfileorcl.ora
rm /opt/oracle/oradata/orcl/system01.dbf
rm /opt/oracle/oradata/orcl/sysaux01.dbf
rm /opt/oracle/oradata/orcl/undotbs01.dbf
rm /opt/oracle/oradata/orcl/users01.dbf
rm /home/oracle/tbs_ctl01.dbf
rman target /
RMAN> set dbid 1353286769 --如果备份在
startup nomount --虽然没有参数文件但是也可以启动实例
恢复参数文件:
restore spfile from '/data/backup/ctl_c-1353286769-20131102-04.bak';
/* 从快速恢复区恢复参数文件:
run {
restore spfile from autobackup
recovery area = 'flash recovery area destination'
db_name = 'db_name';
}
*/
查看是否有需要改的参数:主要看文件位置
SQL> create pfile from spfile;
恢复控制文件:
restore controlfile to '/opt/oracle/oradata/orcl/control01.ctl' from '/data/backup/ctl_c-1353286769-20131102-04.bak';
恢复数据文件:
RMAN> shutdown immediate
RMAN> startup mount
RMAN> restore database;
RMAN> recover database;
RMAN> alter database open;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 11/02/2013 12:10:46
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
RMAN> alter database open resetlogs;
--------------------------------------------------------------------------------------------------------------
使用增量备份恢复处于 NOARCHIVELOG 模式的数据库:
STARTUP FORCE NOMOUNT;
RESTORE CONTROLFILE;
ALTER DATABASE MOUNT;
RESTORE DATABASE;
RECOVER DATABASE NOREDO;
ALTER DATABASE OPEN RESETLOGS;
8. 使用增量备份恢复处于NOARCHIVELOG 模式的数据库
1) 撤销数据库archivelog模式
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database noarchivelog;
SQL>alter database open;
SQL>archive log list;
2) 创建测试用表及数据
conn zhuxy/zhuxy
create table c (id number);
insert into c values(1);
commit;
3) 在noarchivelog模式下,0级备份
RMAN> run{
shutdown immediate;
startup mount;
backup as backupset incremental level 0 database;
alter database open;
}
4) 在noarchivelog模式下,1级备份
insert into c values(2);
commit;
RMAN> run{
shutdown immediate;
startup mount;
backup as backupset incremental level 1 database;
alter database open;
}
6) 删除所有日志文件, 某些数据文件
7) 执行恢复
rman target /
RMAN>startup mount;
--执行全库的还原
RMAN> restore database;
-- 使用noredo子句进行恢复
RMAN> recover database noredo;
--恢复完成,resetlogs方式打开数据库,完成所有文件丢失的恢复
RMAN> alter database open resetlogs;
8)验证在测试前(增量备份前)插入的数据
select * from c;
6.非归档丢失文件
不完全恢复: SCN, 时间,还原点,或日志序列号
1确定目标还原点:SCN、时间、还原点或日志序列号。
2设置 NLS 环境变量。
3装载数据库。
4使用 SET UNTIL、RESTORE 和 RECOVER 命令准备并运行 RUN 块。
5用 RESETLOGS 打开数据库。
-----不完全恢复之--基于时间的恢复
1) 准备环境:RMAN全库备份
RMAN> backup as compressed backupset full database;
2) 准备环境:测试表及数据
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
create table d (c date);
insert into d values(sysdate);
commit;
create table ff (c date);
insert into ff values(sysdate);
commit;
启动到mount模式,进行基于时间的恢复
shutdown immediate;
startup mount;
run
{sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';
set until time = ' 2014-03-30 00:39:34';
restore database;
recover database;
alter database open resetlogs;
}
时间也可以这么写:
set until time="to_date('2013-11-01 15:29:34','yyyy-mm-dd hh24:mi:ss')";
-----还原点:
select count(*) from copy_emp;
创建还原点:
create restore point before_delete;
delete from copy_emp where ID >=10;
commit;
alter table copy_emp enable row movement;
flashback table copy_emp to restore point b;
--------------------------------------------------------------------------------------------------------------
将数据库还原到新主机:
为了还原数据库,请在还原主机上执行以下步骤:
1.配置 ORACLE_SID 环境变量。
2.启动 RMAN 并在 NOCATALOG 模式下连接到目标实例。
3.设置数据库标识符 (DBID)。
4.在 NOMOUNT 模式下启动实例。
5.
从备份集中还原服务器参数文件。
6.关闭实例。
7.
编辑还原的初始化参数文件。
8.
在 NOMOUNT 模式下启动实例
9.创建 RUN 块以执行下列任务:
--还原控制文件
--
装载数据库
10.创建 RMAN 恢复脚本以还原和恢复数据库。
11.执行 RMAN 脚本。
12.使用 RESETLOGS 选项打开数据库。
9 利用备份将数据库还原到新主机:目标库需要有oracle软件
1)准备工作
源库数据库全备及控制文件自动备份,当然也包括参数文件
RMAN> backup as backupset database;
2)拷贝RMAN备份文件到目标库
可以用scp
3)配置目标库
目标库设置环境变量
export ORACLE_SID=new_orcl
启动rman到nomount状态,设置dbid(即源库dbid)
$ rman target /
RMAN> set dbid 1357901988
RMAN> startup nomount; --没有参数文件,会报错,但是可以启动实例
4)恢复参数文件
RMAN> restore spfile to pfile '' from '';
编辑pfile参数文件:文件位置,数据库实例名..,创建相应的目录
5) 启动数据库到nomount模式
SQL> create spfile from pfile;
SQL> startup nomount;
6)还原控制文件
$ rman target /
RMAN> restore controlfile to '' from '';
RMAN> alter database mount;
7) 还原数据文件
run{
SET NEWNAME FOR DATAFILE 1 TO '/u01/app/oracle/oradata/orcl/system01.dbf';
SET NEWNAME FOR DATAFILE 2 TO '/u01/app/oracle/oradata/orcl/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 3 TO '/u01/app/oracle/oradata/orcl/undotbs01.dbf';
SET NEWNAME FOR DATAFILE 4 TO '/u01/app/oracle/oradata/orcl/users01.dbf';
SET NEWNAME FOR DATAFILE 5 TO '/u01/app/oracle/oradata/orcl/example01.dbf';
SET NEWNAME FOR DATAFILE 6 TO '/u01/app/oracle/oradata/orcl/test.dbf';
RESTORE DATABASE;
SWITCH DATAFILE ALL;
RECOVER DATABASE;}
--rename日志文件
run{
SQL "ALTER DATABASE RENAME FILE ''/u01/app/oracle/oradata/ENMOEDU/redo01.log'' TO
''/u01/app/oracle/oradata/orcl/redo01.log'' ";
SQL "ALTER DATABASE RENAME FILE ''/u01/app/oracle/oradata/ENMOEDU/redo02.log'' TO
''/u01/app/oracle/oradata/orcl/redo02.log'' ";
SQL "ALTER DATABASE RENAME FILE ''/u01/app/oracle/oradata/ENMOEDU/redo03.log'' TO
''/u01/app/oracle/oradata/orcl/redo03.log'' ";
}
RMAN> alter database open resetlogs;
8)临时文件位置不对
SQL> select file_name from dba_temp_files;
SQL>create temporary tablespace tempa tempfile
'/u01/app/oracle/oradata/orcl/tempa01.dbf' size 10m reuse autoextend on maxsize 200m;
SQL>alter database default temporary tablespace tempa;
SQL>drop tablespace temp;
SQL>select file_name from dba_temp_files;
注:这个测试改变了实例名
--------------------------------------------------------------------------------------------------------------
执行灾难恢复 :
灾难意味着丢失了整个目标数据库、恢复目录数据库、所有当前控制文件、所有联机重做日志文件和所有参数文件。
灾难恢复包括还原和恢复目标数据库。
备份集的最低要求:
1.数据文件的备份
2.
相应的归档重做日志文件
3.
至少一个控制文件自动备份
基本过程:
1.
还原服务器参数文件的自动备份。
2.启动目标数据库实例。
3.从自动备份还原控制文件。
4.装载数据库。
5.还原数据文件。
6.恢复数据文件。
7.使用 RESETLOGS 选项打开数据库。

ToadDuserSinMySqleFeffectially, 다음에 따르면, 다음 사항을 따르십시오

toaddanewuser와 함께 complexpermissionsinmysql, followthesesteps : 1) createShereuser'NewUser '@'localhost'Identifiedby'pa ssword ';. 2) grantreadaccesstoalltablesin'mydatabase'withgrantselectonmydatabase.to'newuser'@'localhost';. 3) GrantWriteAccessto '

MySQL의 문자열 데이터 유형에는 char, varchar, binary, varbinary, blob 및 텍스트가 포함됩니다. 콜라이트는 문자열의 비교와 분류를 결정합니다. 1. 차량은 고정 길이 스트링에 적합하고 Varchar는 가변 길이 스트링에 적합합니다. 2. 이진 및 바이너리는 이진 데이터에 사용되며 Blob 및 텍스트는 큰 객체 데이터에 사용됩니다. 3. UTF8MB4_UNICODE_CI와 같은 정렬 규칙은 상류 및 소문자를 무시하며 사용자 이름에 적합합니다. UTF8MB4_BIN은 사례에 민감하며 정확한 비교가 필요한 필드에 적합합니다.

가장 좋은 mysqlvarchar 열 길이 선택은 데이터 분석을 기반으로하고, 향후 성장을 고려하고, 성능 영향을 평가하고, 문자 세트 요구 사항을 기반으로해야합니다. 1) 일반적인 길이를 결정하기 위해 데이터를 분석합니다. 2) 미래 확장 공간을 예약하십시오. 3) 성능에 대한 큰 길이의 영향에주의를 기울이십시오. 4) 문자 세트가 스토리지에 미치는 영향을 고려하십시오. 이러한 단계를 통해 데이터베이스의 효율성과 확장 성을 최적화 할 수 있습니다.

mysqlblobshavelimits : tinyblob (255bodes), blob (65,535 bytes), mediumblob (16,777,215 bctes), andlongblob (4,294,967,295 Bytes) .tousebl obseffectical : 1) 고려 사항을 고려합니다

MySQL에서 사용자 생성을 자동화하기위한 최고의 도구 및 기술은 다음과 같습니다. 1. MySQLworkBench, 중소형 환경에 적합하고 사용하기 쉽지만 자원 소비가 높습니다. 2. 다중 서버 환경에 적합한 Ansible, 간단하지만 가파른 학습 곡선; 3. 사용자 정의 파이썬 스크립트, 유연하지만 스크립트 보안을 보장해야합니다. 4. 꼭두각시와 요리사는 대규모 환경에 적합하며 복잡하지만 확장 가능합니다. 선택할 때 척도, 학습 곡선 및 통합 요구를 고려해야합니다.

예, youcansearchinsideablobinmysqlusingspecifictechniques.1) converttheblobtoautf-8stringwithConvertFunctionandSearchusing


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경