oracle基础

①、进入数据库命令:>sqlplus "/as sysdba"

②、查看数据库的动态实例表命令:SQL>select status form v$instance;

③、关闭数据库的命令:SQL:shutdown immediate 

④、重启动数据库stratup

⑤当前数据库名称show parameter db_name

⑥查询用户是否是锁定   select username,account_status from dba_users where username='SCOTT'   显示EXPIRED & LOCKED 表示该用户到期和锁住

⑦如何知道dba_users表中都有哪些列?desc user_tables;

7.1如果对SCOTT用户进行解锁alter user 数据库用户名 account unlock;

7.2 验证 SCOTT用户是否激活 select usernmae,accout_status from dba_users where username='SCOTT'  显示EXPIRED  ,该用户原来密码登录并重新更改密码,即可解除到期状态。

7.3使用SCOTT用户登录数据库,并设置密码

7.3.1在数据库中却换用户

用户连接方法 conn  用户名/密码    conn  scott/tiger

提示设置新密码  设置为cat

再查看SCOTT 用户状态 select username,accout_status from dba_users where username='SCOTT'  显示OPEN  

使用SCOTT用户登录 sqlplus scott/cat 

查看当前用户 show user

⑧查询,插入,更新,删除SQL语句

8.1登录SCOTT用户 sqlplus scott/cat

8.2查询SCOTT用户有哪些表 select table_name from user_tables;

8.3查询DEPT表中有哪些部门  select * from dept;

8.4 查询DEPT表中有哪些列 desc dept;

8.5在DEPT表中增加一列Development部门   insert into dept (deptno,dname,loc) values (50,'Development','BeiJing');

  输入commit;提交

8.6将研发部门工作地址更新为上海  update dept set loc='shanghai' where deptno=50;

     输入commit 提交

8.7删除Developmant 部门   delete from dept where deptno=50;

    输入commit提交

⑨查询每个员工的编号,名字,薪水

9.1、select empno,ename,sal from emp;

9.2、调整查询结果表的列次序   select ename,sal,empno from emp;  英文默认是左对齐,而数字默认是右对齐。

⑩查询员工的入职时间

select ename,hiredate from emp;

10.1、设置查询数据的时间格式  alter session set nls_date_format='YYYY-MM-DD';

10.2、查询员工到目前工作年限 

如果查询当前数据库时间? select sysdate from dual;

使用当前时间减去员工入职时间即可以得到员工工作年限  select ename,round ((sysdate-hiredate)/365,0) from emp;

round(X,Y)是oracle数据库的一个四舍五入函数,X表示这个数需要进行四舍五入,Y表示哪位数进行四舍五入,如果Y=0,表示在个位数进行四舍五入,Y=2表示在小数点后2两位进行四舍五入。

10.3、按照工作年限排序查询员工姓名和年数

10.3.1、查询员工入职时间 select ename,hiredate from emp order by hiredate;  

order by 是SQL语句中排序的关键字,后面跟排列的列名。默认是按升序排列,即数字从小到大。

10.3.2、根据入职时间求出工作年限  select ename ,round((sysdate-hriedate)/365,0) from emp order by 2;

order by 2 表示第二列排序 ,默认是升序。

10.3.3 查询出每个员工的工作年限,按年数倒序排列数据

select ename,round((sysdate-hriedate)/365,0) from  emp order by round((sysdate-hriedate)/365,0) desc;

desc表示排列使用降序来输出数据,即从大到小进行排列。

10.3.4 变成中文列名,本土化查询语句

select ename as "姓名"  round((sysdate-hriedate)/365,0) as "工作(年)" from emp order by "工作(年)" desc;

10.3.5 临时多给员工1500元奖金

(1)先查看每一个员工的工资 select ename,sal from emp order by sal;

(2)查询的到的工资加上1500元奖金即为这个月的工资  select ename,sal+1500 from emp order by sal;

(3)对查询员工薪水进行文字说明,这样更容易理解 

slect ename ||  '员工本月基本工资为:¥' || (sal+1500) as '公司员工本月工资表' from emp order by sal;

|| 表示Oracle 连接符,可以把查询处理数据和其他字符串连接起来。

10.3.6 查看哪些部门没有安排员工

(1)查看哪些部门没有安排员工  select ename,dateno  from emp;

(2)如何把查询中结果只显示唯一值,过滤重复数据? select distinct dateno  from emp;

distinct 是去掉重复数据的SQL关键字。

10.3.7 按照薪水排列查询工资少于2000的员工

查询工资少于2000员工并按薪水排列顺序。select ename ,sal from emp where sal<2000 order by sal;

10.3.8、查看薪水在某个区间的员工 。select ename,sal from emp where sal between 1500 and 2500 order by  sal;

10.3.9、查看销售部门拿保底工资的有多少人。select empno,ename,job,sal from emp where jbo='SALESMAN' and sal =1250;

10.3.10、查看没有奖金且工资或者工资少于1500的员工。select empno,ename,job,sal,comm from emp where comm is null or sal<=1500;

例如:员工的工资加提成,哪个员工的工资最少的。

select empno,ename,job,sal,comm,sal+nvl(comm,0) from emp where comm is null or sal<=1500 order by nvl(comm,0);

nvl(X,Y)是数据库的一个内部函数,表示如果X有值,则返回X的值,如果X值为null,则默认为Y。这里就是comm(提成)代替为X,“0”代替为Y。

10.3.11、查看名字开头为"M"的员工 select ename,job,sal  from emp where ename like 'M%';

10.3.12、查找销售人员、分析师 、管理人员的数据 select ename,job from emp where job in ('SALESMAN','ANALYST','MANAGER');

10.3.13、统计每个岗位有多少个员工  select job,count(*) from emp group by job;

group by 是Oracle 中的分组函数

count(*)是统计数量的一个函数,这里是统计公司每个岗位有多少人。

为了直观看数据,可以按照数量进行排序

select job,count(*) from emp group by job order by count(*);

3.11统计每个部门有多少个员工

select deptno,count(*) from emp group by deptno;

并按照部门排序

select deptno,count(*) from emp group by deptno order by deptno;

3.12 统计公司本月总共需要支付多少薪水

select sum(sal)+sum(nvl(comm,0))  from emp;

sum是Oracle数据库一个内部函数,即所数值之和。

3.13统计公司员工的平均工资

select round(avg(sal,2)) from emp;

avg是Oracle数据库平均值函数。

3.14统计公司员工最高,最低工资及相差多少

select max(sal),min(sal),max(sal)-min(sal) from emp;

max为Oracle的最大值函数,min为Oracle的最小值函数。

3.15 查找哪些岗位的平均工资高于2500元

select job,avg(sal) from emp having avg(sal) > 2500 group by job;

having在使用group by 分组时候,如有条件限制需要使用having,而不能使用where 。即在group by 中所对应的条件限制having .

第五章

5.4 创建表

create table Items(

    ItemNO number(2) constraint PK_Items primary key;

   ItemName varchar2(20) not null;

constraint :定义表约束所必需的关键字,后面跟约束名。

primary key:主键约束的关键字

5.5 如何创建带有外键的表

create table Business(

  Busino number(2) constraint PK_Business primary key,

  BusiName varchar2(22) not null,

  ItemNO number(2) ,constraint FK_Business foreign key(ItemNO) references Items (ItemNO),

  StartTime date;

)

foreige key ......references.....:这个是创建外键必需用SQL语句关键字,并且该列需要和另外一个表的主键对应起来。

to_date():是Oracle的一个内部函数,可以把字符串转换成时间格式。

)

5.6 如何设置表中列值的条件和唯一值

unique:这个是唯一约束的关键字,表示该列的值具有唯一性。

constraint.....check....:这个是条件约束的关键字,插入,更改的数据需要符合这些条件才能将数据提交到数据库中。

date:这个是Oracle数据库中的表列数据类型,时间类型。

number(7,2)表示只能是7位数,可以保持2位小数。

5.7 将一张表的数据复制到另外一张表

create  table  表1 as select  * from 原表;

5.8如何在PL/SQl Developer 中快速删除表

drop table 表;

5.10 如何快速将表中的数据快速导入到新表中

insert into  business(busino,businame,itemno,starttime) select * from business_copy;

5.12 如何使用PL/SQl Developer修改表结构

alter table items add (manager varchar2(6));

第六章  如何新增,修改,删除用户以及如何授权

6.1如果使用PL/SQl Develope创建数据库用户

create user lisi identified by lisi;

create user :是创建数据库用户的关键字,后面跟用户名称,

identified by :是设置数据库用户密码的关键字。

6.2如何对刚刚重建用户授权

把连接数据库权限授权给lisi用户

grant connect to lisi;

grant:授权关键字

connect:Oracle数据库一个默认角色,只有连接数据库的权限。

如何将scott用户的表授权给lisi 用户

grant select  on emp to lisi;

6.3如何回收数据库用户的权限

revoke select on emp from lisi;

6.4把表的增、删、改权限授权给用户和修改密码

grant select ,install, update ,delect on emp to lisi;

select * from scott.emp;

回收表的增、删、改权限授权

revoke select  ,install, update ,delect on emp from lisi;

修改用户密码

alter user lisi identified by li123;

6.5如果删除数据库用户

drop user lisi;

drop user lisi cascade;(这将会删除与李泗用户关联的表)

6.6 数据库的权限和角色

查看用户本身拥有的权限

select * from session_privs;

session_privs是Oracle数据库的字典表,字典表其实是Oracle内部的表

查看用户本身拥有的角色

select * from user_role_privs;

查看CONNECT角色有哪些权限

select * from dba_sys_privs where grantee='CONNECT';

6.7如何给一个开发人员创建数据库用户并授权

创建一个数据库用户并授权

create user wangwu identified by wangwu;

对wangwu用户授予角色

grant connect ,resorce to wangwu;

 

第七章 数据库有哪些重要对象

7.1:查看数据库有哪些对象组成

数据库最重要的的对象------表

查看DEPT表的具体结构

7.2 :数据库对象----视图

要求查看每个部门的平均工资,把数据库中的两个表联合起来查询

创建一个求每个部门的平均工资的视图

create view avgsal

    as 

    select d.dname as "部门名称", round(avg(e.sal),2)  as "平均工资" , count(*) "员工人数"

    from emp e, dept d 

    where e.dpet.no=d.deptno

    group by d.dname;

使用视图查询每个部门的平均工资

select * from avgsal;

如何查看用户有多少个视图

select  * from user_view

7.3数据库对象----序列

序列(Sequence)是数据库对象之一,利用它可以生成唯一的整数。序列可以避免了由于不同数值造成的换乱。

create sequence bookID 

   Start with 1 

   Increment by 1

   Maxvalue 99999999999

   nocache

   nocycle

上面创建了序列从1开始,然后下一个增加1,而最大9999999999,数值不可以循环使

输入图书inert into book(bookid,bookname) values (bookID.Nextval,'小学数学课本');

序列的Nextval表示序列的下一个值,Currval表示序列的当前值。可以通过虚表dual查看。

虚表dual是oracle数据库和数据字典一起自动创建一个表

查看bookid序列的当前值

select bookid.currval from dual;

查看bookid序列的下一个值

select bookid.nextval from dual;

7.4数据库对象----函数

使用函数把小写转换为大写

select upper(avcsdfsdfs) from dual;

创建一个通过员工ID获取其薪水的SQL语句函数

create or replace function get_empsal(emp_no in number)

 return unmber 

is emp_sal number(7,2);

begin 

     select sal

     into emp_sal

     from emp

     where empno=emp_no;

     return(emp_sal);

end;

解释:

create or replace function这个是创建或者已经存在的函数,函数名为get_empsal,挂号中的emp_no为输入员工的工号,输入类型类number(数字类型)

 return unmber :该函数定义函数返回一个数组类型的值

is emp_sal number(7,2):定义参数emp_sal ,该数值类型为number

begin:为函数的程序段开始

select ......return......:这是函数的程序段,

end:结束函数的sql程序段,以begin对应

如何通过函数获取员工薪水

select get_empsal(7566) from dual;

7.5 数据库函数------存储过程

创建一个根据员工删除员工信息的存储过程

create or replace procedure DelEmpno(empid in number) is

begin 

       delete from emp where emp.empno=empid;

       commit;

end DelEmpno;

解释:create or replace procedure是创建存储过程的关键字

empid in number :empid为DelEmpno 存储过程的参数,该参数的数据类型为数值。

begin......end.....:是存储过程的开始和结束关键字

如何执行刚刚创建的存储过程

execute DelEmpno(7566);

execute是执行存储过程的关键字。

7.6  数据库对象-----索引

索引(index)是对数据库表中一列或者多列的值进行排序的一种结构。索引可以加快数据库的查询速度。

创建一个存储过程,用来循环往test_index表中插入数据。

create or replace procedure insert_data

is

temp varchar2(20) := 'Insert Data';

begin

     for i in i..100000000  loop

        insert into test_index(id,name) values(i,temp);

   end loop;

        commit;

end ;

如何执行insert_data存储过程?

execute insert_data;

在没有索引情况下,查询ID为9999是所需要时间很长。

创建表的索引

create index id_test_index on test_index(id);

7.7数据库对象------同义词

同义词(Synonym)是现有对象的一个别名。

确认scott 用户是否具有创建同义词的权限

select * from session_privs where privilege like '%SYNONYM';

给scott用户赋予创建同义词权限

grant create any synonym to scott;

创建一个表的同义词。

create synonym sg for salgrade;

通过同义词sg 可以查询表salgrade数据,即salgrade 表的一个别名是sg 。

Oracle数据库中函数和存储过程有什么区别?

①函数必须有返回值,存储过程没有返回值。

②函数可以单独执行,存储过程必须通过execute执行。

③函数可以嵌入SQL中执行,而过程不能。

其实我们可以将比较复杂的查询写成函数,然后到存储过程中调用这些函数。

 

第八章 数据库启动的不同状态

8.1 关闭数据的4个不同的命令

查看数据库当前的状态

(1)查看“OracleSericeORLC”服务是否是开启状态。

(2)可以在控制台输入命令 >sqlplus "/as sysda"

另外安装了多个数据库,则需要在登录数据库之前设oralce数据库的环境变量,  

set ORALCE_SID=ORCL  表示设置实名为ORCL

再输入命令 >sqlplus "/as sysda"

(3)登录数据库后查看数据库的状态

sql>select instance_name,status from v$instance;

实例(instance):包括数据库的内存结构和一组后台进程。像所谓数据库集群,则是一个数据库,有多个实例构成。

如何关闭数据库?

SQL>shutdown immediate

关闭数据库4个命令

shutdown immediate :不允许新的连接,不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。启动是不需要对数据库进行实例恢复,最常用方式

shutdown abort:不允许新的连接,不等待会话结束、不等待事务结束、做一个检查点并没有关闭数据文件。启动是需要对数据库进行实例恢复

shutdown transactional:不允许新的连接,不等待会话结束、等待事务结束、做一个检查点并没有关闭数据文件。启动是不需要对数据库进行实例恢复

shutdown normal:不允许新的连接,等待会话结束、等待事务结束、做一个检查点并没有关闭数据文件。启动是不需要对数据库进行实例恢复

8.2启动数据库到nomount状态

把数据库启动到nomount状态  

SQL>startup nomount

然后再查看数据库实例的状态

SQL>select instance_name,status from v$instance;

这个nomount状态一般在维护数据库时候需要用到,比如对数据库重要参数的修改,恢复数据库的控制文件及数据时候都需要用到这个状态。

如何查看初始化文件(spfile或pfile)的内容呢?

首先找到数据库初始化文件的位置

SQL>show parameter spfile

根据spfile文件创建pfile文件

SQL>create pfile='D:\LearnOracle\pfile.ora' from spfile;

用记事本打开LearnOracle\pfile.ora文件,可以查看哪些数据库重要参数,包括数据库名,各内存分配大小,连接进程数(processes)等

如何使用初始化文件pfile来启动数据库

(1)关闭数据库

SQL>shutdown immediate

(2)使用pfile文件启动数据库到nomount文件

SQL>startup nomount pfile='D:\LearnOracle\pfile.ora'

8.3数据库的mount状态

数据库的mount转态中,Oracle进程会读取到控制文件中的参数。mount状态在数据库恢复数据时需要用到,而数据库在配置数据库的备库(Dataguard)时候,数据库的备库是处于mount状态。

从数据库的nomount更改为mount状态

SQL>alter database mount;

查看数据库实例是什么状态?

SQL>select instance_name,status from v$instance;

查看控制文件具体位置

SQL>select name from v$controlfile;

如何查看控制文件内容?

可以使用Oralce的命令把控制文件的内容显示在Trace(跟踪)中,

alter  database backup controlfile to trace as 'D:\LearnOracle\ct1.trc';

然后用记事本打开LearnOracle\ct1.trc文件

8.4数据库的open转态

数据库的open状态表示数据库是正常运行,

如何更改数据库到open状态?

把数据库的mount状态更改为open状态

SQL>alter database open;

如何查看数据库的数据文件位置?

SQL>select name from v$datafile;

如何查看数据库的重做日志位置?

SQL>select name from v$logfile;

 8.5数据库的密码文件

windows中Oracle数据库中,密码文件一般位于$ORACLE_HOME/database/目录下面,文件名一般为PWDorcl.ora(orcl为数据库名),linux系统中一般位于$ORACLE_HOME/dbs/目录下,文件名一般为orapworcl(orcl为数据库名)。

改密码文件的作用是允许数据的sysdba,sysoper用户通过口令来远程登录

如何查看数据库是否允许远程登录?

SQL>show parmenter remote_login_passwordfile

EXCLUSIVE 表示允许远程连接,NONE表示不允许远程连接。

如何设置禁止数据库用户远程登录数据库?

SQL>alter system set remote_login_passwordfile = none scope=spfile;

需要重启数据库才能生效

SQL>startup force;

8.6查询和说明表空间

如何查看数据库表空间名、存储单位、转态、类型、是否记录日志?

通过sys用户连接数据库

select tablespace_name as "表空间名称" ,

           block_size /1024 as "数据库存储大小单位(KB)",

           status as "表空间的状态",

           contents as "表空间的类型",

           logging '‘是否有日志记录"   

from dba_tablespaces;

8.7查询及说明数据文件

如何查询数据文件的表空间、大小、是否扩展、最大值?

select  t.tablespace_name as "表空间名称" ,

           t.file_name as "数据文件路径",

           t.bytes /1024 /1024 as "数据文件大小(MB)",

           t.autoextensible as "数据文件是否自动扩展",

           t.maxbytes /1024/1024 as "数据文件最大(MB)"

from  dba_data_files t;

8.8查询及说明重做日志

如何查询重做日志的位置、转态、大小、类型?

select * from v$logfile;

 第九章  linux 常用命令

查看linux版本

#uname -r  或者#uname -a

查询linux 系统发行版本

#cat /ect/redhat -release

查看linux 具体版本号

#cat /proc/version

启动或关闭FTP服务

#service vsftpd start

#service vsftpd stop

查看linux 磁盘大小

#df -lh

查看linux 内存大小

#free

查看CPU个数

#ls/proc/acpi/processor

查看CPU相关信息

#cat /proc/cpuinfo

却换到某个目录下

却换到home 目录

#cd /home

".." 表示返回到上一级目录

查看某个目录下所有文件

#ls 

#ls -l:查看文件详细信息

查看目录当前绝对路径

#pwd 

9.4 如果让windows 和虚拟机中的linux 系统通信

查看IP地址命令

#ifconfig

9.5 telnet 命令

打开telent 服务

#service xinetd restart

关闭Telnet命令

#service xinetd stop

启动Telnet命令

#service xinetd start

重启Telnet命令

#service xinetd restart

如何确定linux 系统的Telnet是否打开?

#chkconfig --list|grep telnet

如果输出结果是krb5-telnet 为off状态,表示处于关闭状态。需要打开krb5-telnet服务

#chkconfig krb5-telnet on

从外面连接telnet服务,还需要关闭防火墙

#service iptables stop

9.6 linux 系统vi编辑器

如何解决linux 系统显示的乱码?

在窗口输入命令

#vi /etc/vimrc

第10 章 如果在linux 系统安装oralce 数据库

10.7创建安装oracle的用户及组

解压Oracle软件安装包命令

#unzip  10201_database_linux32.zip

创建安装oracle 的用户及组

创建linux 的oinstall 组

#groupadd oinstall

接着创建linux 的dba组

#groupadd dba

创建linux 系统的oracle用户并设置该用户属于oinstall ,dab 组

#useradd -m -g oinstall -G dba oracle

确认一下oralce用户属性

#id oracle

设置oracle用户密码

#passwd oracle

10.8 创建安装oracle数据库所需要目录

#mkdir  -p  /u01/app/oracle

把/u01/app/oracle目录设置属性属于oracle 用户和oinstall组

#chown -R oracle.oinstall /u01/app/oracle

把/u01/app/oracle目录设置成oracle用户可读写的状态

#chown -R 775 /u01/app/oracle

10.9 设置oracle用户的环境变量

使用vi编辑/home/oralce/.bash_profile

10.14验证oralce是否安装成功

却换到oralce用户

#su - oralce

输入下面命令进入oracle 数据库中

$sqlplus "/as sysdba"

在oracle数据库的命令窗口输入SQL语句

SQL>select instance_name,status  from v$instance;

实例显示为open,表示可以访问状态

查看数据库的监听转态

$lsnrctl status

 第11章  异构环境Oracle数据库迁移

11.1 exprot和import是什么

export:从数据库中导出数据到dump文件中

improt:从dump文件导入数据到数据库中

11.2在windows的数据库中给开发人员新建一个用户及其表空间已测试新项目

查看数据库数据文件表dba_data_file的结构

SQL>desc dba_data_file

 查看数据库的数据文件位置,已便确定创建表空间的数据文件

SQL>col file_name for a50

a50:表示50个字符大小

创建一个表空间

SQL>create tablespace bank_tbs datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL bank_data02.dbk'

         size 5M autoextend on maxsize 10G 

 autoextend on 表示:数据随着数据量的增加自动扩大

创建该项目需要的数据库用户

SQL>create user bankuser identified by bankpwd default tablespce bank_tbs;

default tablespce:表示改用户使用默认的表空间,

对数据库用户进行授权

SQL>grant connect,resource to bankuser;

使用刚刚创建用户登录数据库

SQL>sqlplus bankuser/bankpwd@orcl

可以进行创建表、插入数据

查看表所属的表空间

SQL>table_name,tablespce_name from user_tables;

11.4使用export导出数据

>exp bankuser/bankpwd@orcl file=D:\LearnOracle\bankuser.dmp  log =D:\LearnOracle\bankuser.org

file :指定导出的文件所在位置,

11.5使用improt 导入数据

把数据导入Linux 的Oralce数据库中

>imp bankuser/bankpwd@LinuxOMS fromuser=bankuser touser =bankuser file =D:\LearnOracle\bankuser.dmp log=D:\LearnOracle\bankuser.org

验证刚刚导入数据

SQL>select table_name from user_tables;

11.7使用expdp、impdp迁移数据

数据泵可以看做exp、imp升级版

用法:

在数据库中创建导出数据的目录。

SQL>careate or replace directory expdp_dir as '/home/oracle/expdp_dir';

把目录授权给bankuser用户

SQL>grant read,write on directory expdp_dir to bankuser;

接着需要在linux 系统中创建一个目录

$pwd 

$mkdir expdp_dir

$chmod 777 expdp_dir

查看权限 $ls -l

在linux 系统中使用expdp导出数据

$ expdp bankuser/bankpwd driectory=expdp_dir dumpfile=bankuserLinux.dmp logfile=bankuserLinux.log

第十二章  不影响数据库运行如何快速恢复删除的表及其数据

12.1 Oracle 10g 中的Flashback是什么

Flashbakc(闪回)可以简化用户的数据恢复,不用从逻辑备份和物理备份中恢复过来。

Flashback支持的恢复级别包括下列几种

事务闪回:对表进行了insert  update  delete 操作,已经commit ,发现错误,需要恢复达到某个commit操作之前的数据,则需要撤销刚才的某个操作。

行级闪回:对表的insert update datete 操作,需要恢复到某个时间点,

表级闪回:错误的drop table 操作,需要表和表中的数据

数据库级闪回:错误的对整个数据库导入很多表数据,需要将数据库恢复到过去的时间点。

事务(Transaction);比如对表做了insert 操作,然后进行了commit成功之后就算完成一个事务。

查看用户bankuser是否具有闪回权限

SQL>select  * from session_privs where privilege like 'FLASHBACK%'

对bankuser 用户赋值权限

SQL>grant flashback any table to bankuser;

12.2 如何恢复刚刚删除一条数据

例如:删除EMP表的数据

delect from emp where ename='FOED';

要恢复刚刚删除数据

使用sys用户及其密码通过连接数据库

 

12.5 在windows中备份linux系统数据库的数据

写一个备份脚本

exp bankuser/bankpwd@ORCL_192.168.0.199

file=D:\LearOracle\BackBankuser\Monday.dmp

log=D:\LearOralce\BackBankuser\Moday.log

然后使用windows系统的任务计划定制时间调用这个脚本

第13章 如何备份数据库

13.1备份需求和RMAN备份

RMAN的增量备份(差量备份)这样备份和恢复都比较简单,所暂用的空间比较小。

13.2查看相关备份的环境

查询数据版本SQL>select * from v$version

查看数据库名SQL>show parmeter db_name

查看数据库是否为归档转态SQL>archive log list

数据库的RMAN备份必须在Oracle的归档模式下才能进行。

例:更改数据库的非归档模式改成归档模式

(1)进入数据库,关闭数据库

SQL>shutdown immediate

(2)启动数据库到mount状态

SQL>startup monut 

(3)接着改变数据库归档模式

SQL>alter database archivelog;

打开数据库SQL>alter database open;

验证是否是归档模式SQL>archive log list;

13.4 设置RMAN备份环境参数及自动备份控制文件

查看RMAN备份的环境

$rman target/

查看RMAN中所以参加配置

RMAN>show all

启动控制文件的自动备份

最简单的全库备份

RMAN>backup  database;

查看备份的相关信息

RMAN>list backup;

查看备份总体信息

RMAN>list backup summary;

13.5 编写备份脚本

第十四章 如何恢复数据库

查看该数据库是否有备份

RMAN>list backup summary;

还原Oralce数据库文件

RMAN>restore database;

 

转载于:https://www.cnblogs.com/k74123698/p/9837913.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值