Oracle在windows上的安装及使用

2019-08-22  本文已影响0人  約見

1. 服务端安装

https://jingyan.baidu.com/article/363872eccfb9266e4aa16f5d.html

https://www.w3cschool.cn/oraclejc/oraclejc-eswu2qqq.html

创建数据库在dos命令窗口使用DBCA命令,配置监听使用netca命令。

2. 客户端安装和监听配置

export LANG=en_US.UTF-8

./runInstaller -jreLoc /etc/alternatives/jre_1.8.0

https://jingyan.baidu.com/article/455a99506b426da1662778c2.html

如果要使用客户端或数据库工具在客户端访问oracle服务端,必须要安装oracle客户端并配置监听,配置监听也可以通过更改E:\app\Administrator\product\11.2.0\client_1\network\admin\tnsnames.ora

在服务端SQL/PLUS工具中运行如下可以得到服务名:select global_name from global_name;

1、$lsnrctl status:检查当前监听器的状态

2、$lsnrctl start [listener-name] 启动所有的监听器,可以指定名字来启动特定的监听器

3、$lsnrctl stop [listener-name]  关闭所有的监听器,可以指定名字来关闭特定的监听器

4、$lsnrctl reload  重启监听器,此命令可以代替lsnrctl stop,lsnrctl start


PL/SQL登录如有报错信息:PL/SQL database character set(AL32UTF8) and Client character set(ZHS16GBK) are different,需修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_Oracle_10g\NLS_LANG的对应值

SIMPLIFIED CHINESE_CHINA.ZHS16GBK  修改为:SIMPLIFIED CHINESE_CHINA.AL32UTF8即可。


3. 联机备份与恢复

RMAN命令的主要参数有:

●    target:后面跟目标数据库的连接字符串

●   catalog:后面跟恢复目录

●   nocatalog:指定没有恢复

要使用RMAN首先要将数据库设置为归档日志(ARCHIVELOG)模式,具体设置步骤如下:

●  以SYS用户和SYSDBA身份登录到SQL*PLUS:

SQL>CONNECT SYS/passwd@orcl AS SYSDBA;(SYSDBA代表一种权限;orcl代表实例名)

●  以IMMEDIATE方式关闭数据库,同时也关闭了数据库实例,然后以mount方式打开数据库,此时并没有打开数据库实例:

SQL>shutdown immediate

SQL>startup mount(如果报错监听不到,在dos命令行输入set ORACLE_SID=实例名,Linux下使用export Oracle_SID=实例名)

监听报错:https://blog.csdn.net/covey0306/article/details/51918877

●  将数据库从非归档日志模式(NOARCHIVELOG)切换到归档日志模式(ARCHIVELOG):

SQL>alter database archivelog;

alter system set log_archive_dest_1='location=c:\arch' scope=both;

●  用语句查询是否为归档日志模式(ARCHIVELOG/NOARCHIVELOG):

SQL>select dbid,name,log_mode,platform_name,open_mode from v$database;(archive log list;)

●  创建恢复目录所用的表空间,需要创建表空间存放与RMAN相关的数据,需要打开数据库实例,创建表空间:

SQL>alter database open; (用语句实例查看状态select status from v$instance)

SQL>create tablespace rman_ts datafile 'E:\app\Administrator\oradata\orcl\rman_ts.dbf' size 200M; (datafile为dbf文件存放路径,需参考oracle安装时所配置dbf文件存放的路径)

●  创建rman用户,默认表空间rman_ts,临时表空间temp:

SQL>create user rman identified by passwd default tablespace rman_ts temporary tablespace temp;

●  给用户授connect、recovery_catalog_owner和resource权限。(connect权限可以连接数据库,创建表、视图等数据库对象;recovery_catalog_owner权限可以对恢复目录进行管理;resource权限可以创建表、视图等数据库对象)

SQL>grant connect,recovery_catalog_owner,resource to rman;

●  在rman目录下运行rman程序打开恢复管理器(orcl代表实例名):

C:\app\Administrator\product\11.2.0\dbhome_1\BIN>rman target rman/passwsd@orcl

●备份全库

RMAN>backup database plus archivelog delete input;(备份全库及控制文件,服务器参数文件与所有归档的重做日志,删除旧的归档日志)

●备份表空间

RMAN>backup tablespace system plus archivelog delete input;(备份表空间及归档的重做日志,删除旧的归档日志)

●备份归档日志

RMAN>backup archivelog all delete input;

●全库备份

RMAN>backup database;

●删除日志文件(查看日志文件crosscheck archivelog all;)

rman>delete archivelog all;

RMAN>DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7')删除七天前的日志;

●查看备份具体信息

RMAN>list backupset;

●指定路径备份(路径不能指定在oracle数据存放盘,所以报错创建文件失败;因为备份文件有大小限制,所以报错文件已存在)

RMAN>backup database format 'D:\Backup\data_%d_%s_%p.bak';(data_%U也可以)

●增量备份(level 10g之后分0和1,0为全备份,1为增量备份;之前有分4级)

RMAN>backup incremental level 1 database format 'D:\Backup\data_%U.bak';

●备份数据文件:

RMAN>Backup datafile 6 format ’D:\backup/%d_%T_%s’;(1,2,3,4,5,6,7代表数据文件的编号,可通过select file#,name from v$database来进行查询)

●备份归档日志:

RMAN>Backup archivelog all delete input format ‘D:\backup\%U.dbf’;

●备份控制文件:

RMAN>Backup current controlfile format ‘D:\backup\%d_%T_%s’;(current当前的)

●备份spfile(参数文件):

RMAN>Backup spfile format=’ D:\backup\%d_%T_%s’

参考链接:https://blog.csdn.net/qq_36891027/article/details/81065976

●指定路径还原,先还原控制文件再还原数据

RMAN>restore controlfile to 'E:\Oracle\oradata\orcl\CONTROL01.CTL' from 'D:\Backup\Data_Orcl_21_1.bak';(数据库打开的时候需要使用TO;如果备份文件有多个,from后跟的文件是其中一个)

当无法恢复控制文件:报错活动的控制文件,切换到startup nomount状态;rman连接报错监听无法连接,需修改/u01/app/base/product/11.2.0/db_1/network/admin/tnsnames.ora文件,在对应实例(SERVICE_NAME = test)下一行加(UR=A)来修复动态注册的监听在数据库nomount状态下拒绝一切连接;

在nomount状态下恢复控制文件后需要通过alter database mount语句修改数据库状态,才能进行数据的恢复,否则报错无法打开指定的控制文件;

●再恢复数据RMAN>restore database;

●恢复介质:(alter database open)

recover datafile 'E:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF';

recover datafile 'E:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF';

recover datafile 'E:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF';

recover datafile 'E:\ORACLE\ORADATA\ORCL\USERS01.DBF';

recover datafile 'E:\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF';

recover datafile 'E:\ORACLE\ORADATA\ORCL\IF_FILE';

recover datafile 'E:\ORACLE\ORADATA\ORCL\RMAN_TS.DBF';

https://www.cnblogs.com/biaopei/p/8418833.html

手动归档日志:alter system switch logfile


Oracle12c CDB和PDB新特性参考

https://www.cnblogs.com/hello-wei/p/10179313.html


oracle数据库创建流程:

1. 安装oracle,同时会创建一个数据库,如果需要再创建一个数据库使用DBCA方式开启图形化界面创建数据库,创建完成后会提示端口号,端口不同代表的库不同;

2. 通过https://192.168.1.10:1158/em访问(端口不同代表不同实例),SYS账户登录SYSDBA,创建用户(设置名称口令即可)

3. 编辑用户角色,授权CONNECT,DBA,RESOURCE权限,并勾选管理选项(connect连接权限,resource常用操作权限,dba最高权限):

4. 退出SYS账户,选择normal库登录刚创建的用户,创建表空间(只填写一般信息里面的名称即可,其他保持默认)并添加数据文件(输入文件名,存储可默认可勾选增量):

5. 用语句创建表和插入数据:

CREATE TABLE it(ID NUMBER(4),NAME VARCHAR2(14),LOC VARCHAR2(13));

INSERT INTO it VALUES (10,'ACCOUNTING','NEW YORK');


查看数据库名:select name from v$database

查看实例名:select instance_name from v$instance

Oracle登录命令:sqlplus username/password@DB

创建用户:create user username identified by password;

授权:grant connect,resource,dba to username;(connect连接权限,resource常用操作权限,dba最高权限);

scott默认是锁定的,启用用户的语句:alter user scott account unlock;

查看用户:select username from dba_users;

Oracle11g中有206个权限,可以通过语句在数据字典中查询,系统中有种ANY权限,可以在任意用户模式下操作:

SQL>CONNECT sys /passwd AS sysdba

SQL>SELECT COUNT(*) FROM SYSTEM_PRIVILEGE_MAP;

备份恢复参考资料:

https://wenku.baidu.com/view/84b1d6687e21af45b307a8f2.html?sxts=1566798259184


用闪回区存放归档

rac1执行

set ORACLE_SID=实例名

sqlplus / as sysdba

create pfile='d:/tmpbak.ora' from spfile;

alter system set db_recover_file_dest='+MGMT';

alter system set db_recovery_file_dest_size=200G scope=both;

alter system set cluster_database=false scope=spfile;

shutdown immediate

rac2执行

set ORACLE_SID=实例名

sqlplus / as sysdba

shutdown immediate

rac1执行

startup mount

alter database archivelog;

alter database flashback on;

alter system set cluster_database=true scope=spfile;

shutdown immediate

startup

rac2执行

startup

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

不用闪回区存放归档

rac1执行

set ORACLE_SID=实例名

sqlplus / as sysdba

create pfile='d:/tmpbak.ora' from spfile;

alter system set cluster_database=false scope=spfile;(cluster_database 是用来确定数据库是否在rac环境的集群中的,如果cluster_database=true,那么对于rac 数据库来说,无法在一个节点上mount exclusive数据库,也就无法更改archivelog模式。)

alter system set log_archive_dest_1='location=+MGMT/BDCYC' scope=both;

shutdown immediate

rac2执行

set ORACLE_SID=实例名

sqlplus / as sysdba

shutdown immediate

rac1执行

startup mount

alter database archivelog;

alter system set cluster_database=true scope=spfile;

shutdown immediate

startup

rac2执行

startup


恢复指定时间点

set oracle_sid=实例名

sqlplus / as sysdba

SQL>shutdown immediate

SQL>startup nomount  (数据库开启nomount状态,恢复数据库;如果nomout状态RMAN不能连接,修改.../product/11.2.0/db_1/network/admin/tnsnames.ora文件,在对应实例(SERVICE_NAME = test)下一行添加(UR=A))

rman target rman/passwd@实例名

RMAN>restore controlfile from ‘D:\Backup\....’;

RMAN>alter database mount

RMAN>restore database;

RMAN>sql 'alter session set nls_date_format="yyyymmdd hh24:mi:ss"';   因为在rman中执行,所以需要sql ‘’;

RMAN>recover database until time '20190916 17:30:00'; 恢复到这个时间的数据,执行之后需要重新生成重做日志文件(如果恢复报错UNTIL TIME或RECOVER WINDOW在resetlogs之前,需用list incarnation查询resetlogsDB关键字;使用reset database incarnation to 3去设置到对应的时间点前)

RMAN>sql 'alter database open resetlogs';


scn是指系统改变号,oracle数据库使用它来记录数据库的过去时间内的状态和轨迹

conn /as sysdba

select to_char(scn_to_timestamp(963959),'YYYY-MM-DD HH24:MI:SS') from dual;       将scn转换为时间

select * from (select time_dp,scn from smon_scn_time order by time_dp desc) where rownum<10;  根据用户删除数据时间找出相应的scn号

rman target/

startup mount;

restore database;    还原数据文件

recover database until scn 963915;

sql 'alter database open resetlogs';     重新生成重做日志文件


查看当前状态:select status from v$instance

清除SBT_TAPE记录:configure device type 'SBT_TAPE' clear;

show parameter recover; 查看闪回

db_recovery_file_dest:指定闪回恢复区的位置

db_recovery_file_dest_size:指定闪回恢复区的可用空间大小

db_flashback_retention_target:指定数据库可以回退的时间,单位为分钟,默认1440分钟(1天),实际取决于闪回区大小

SQL> select flashback_on from v$database  检查是否开启闪回

select ts#,name from v$tablespace;   查看表空间

du -sh /u01/app/oracle/flash_recovery_area  查看文件夹使用空间

select file#,status,ts#,name from v$datafile;  查看数据库逻辑文件

select * from v$logfile;  查看日志路径


查看一下配置文件/etc/resolv.conf,里面是否有nameserver

xxx.xxx.xxx.xxx,比如使用dns服务器 nameserver

8.8.8.8,如果有,修改一个可用的dns服务器,如8.8.8.8或者4.4.4.4,保存退出即可!

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

上一篇下一篇

猜你喜欢

热点阅读