ORACLE部分
第一天
第一部分、数据库打开与关闭
一、数据库连接、打开、关闭
1、自动打开数据库
在操作系统的服务列表选中 OracleServiceTEST》右键》启动或者停止。
说明:默认情况下,电脑打开后,该服务也相应自动启动数据库,
2、手动连接数据库
使用命令的方式打开数据库,便于在维护过程中配置参数和恢复等。
打开CMD界面,超级管理员连接数据库,方法一:SQLPLIS SYS/密码@连接服务名 AS SYSDBA;方法二 :SQLPLUS / AS SYSDBA (空密码方式登录必须在服务器端,同时受D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora文件 的SQLNET.AUTHENTICATION_SERVICES = (none) 或 (NTS) 参数进行限制登录模式);
补充:普通用户登录方法:SQLPLUS 用户名/密码@连接服务名;
3、手工打开数据库
手动打开数据库又分为一次性启动和分步骤启动两种方法,启动数据库都需要通过上述方法2, 使用超级管理员连接数据。
(1)、一次性启动:startup
(2)、分步骤系统:
A、SRART NOMOUNT ;
功能:操作系统分配内存,定义常用参数,
调用文件:参数文件SPFILE
补充:参数文件有种类型:PFILE(文本型:D:\app\Administrator\admin\TEST\pfile\init.ora) 和SPFILE(二进制:D:\app\Administrator\product\11.2.0\dbhome_1\database\SPFILETEST.ORA)
;在SPFILE丢失的情况怎么处理:通过PFILE文件先打开数据库到NOMOUNT 状态,再使用命令创建SPFILE: create spfile from pfile='D:\app\Administrator\admin\TEST\pfile\init.ora';
B、ALTER DATABASE MOUNT;
功能:装载数据库、检查和验证控制文件内容、解析数据库文件的路径信息等。
调用文件:控制文件
补充文件:保存数据库维护的字典库。路径(通过参数文件参数control_files定义): D:\app\Administrator\oradata\TEST\CONTROL01.CTL; D:\app\Administrator\flash_recovery_area\TEST\CONTROL02.CTL;
两个文件内容一样;数据库实例只要有一个控制文件就可以启动;
常规恢复:控制文件只坏一个情况下:(1)可以通过复制正常的控制文件替换坏的控制文件;(2)通过修改control_files参数,指引到正常的控制文件。(3)、重新创建控制文件(后期讲)
C、ALTER DATABASE OPEN;
检查数据文件、日志文件等是否存在,并比对SCN号后正常打开数据库,只要打开数据库后,客户端才能连接。
3、关闭数据库
使用:SHUDOWN IMMEDIATE; 别用SHUTDOWN ABORT , startup force( SHUTDOWN ABORT> startup )
二、网络配置
1、监听程序(只需在服务器端配置)
监听局域网络中客户端的数据库连接请求,类似人的耳朵。
(1)、在操作系统》服务》OracleOraDb11g_home1TNSListener;(2) 配置文件路径:D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora;
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-BCDEKL9DCET)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) |
HOST:主机名,IP地址(推荐)
PORT:默认1521,可以自定义
配置监听工具:NETCA 、netmgr( 静态监听配置 )
启动两种方法:1、服务》选中监听》右键启动;2、命令启动 Cmd> lsnrctl 》启动:start ,关闭:STOP,状态查询:status
2、网络服务名(客户端广播)
用于客户端连接服务器数据库指向的定义;文件路径:
D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
配置工具:NETCA 、netmgr
TEST1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.10)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = TEST) ) ) |
TEST1:服务别名
HOST:服务器的IP地址(于监听地址匹配);
PORT:端口号,与服务器监听端口对应;
SERVICE_NAME:实例名
补充:为了提高工作效率,实际工作中是安装完Oracle客户端后,直接复制配置好的tnsnames.ora文件到客户端相应的路径下即可。
三、常用参数调整
1、密码大小写:
SQL> SHOW PARAMETER CASE NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sec_case_sensitive_logon boolean TRUE SQL> alter system set sec_case_sensitive_logon=false; 系统已更改。 SQL> SHOW PARAMETER CASE NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sec_case_sensitive_logon boolean FALSE SQL> |
2、密码180天限制
--1 SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; --180 天到期
更改密码为无期 --2 ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; |
3、空表分配空间,避免空表不导出
alter system set deferred_segment_creation=false;
四、数据库文件
1、参数文件(PFILE和SPFILE)
参考数据库启动部分
2、控制文件
参考数据库启动部分
3、数据文件
功能:保存数据的单位;
两种数据文件(大小限制32G):
A 常规数据文件(保存数据): SELECT * FROM V$DATAFILE
B 临时数据文件(临时表和排序时调用): SELECT * FROM V$tempFILE
4、在线日志文件
功能:记录数据库的变化,便于恢复。
SELECT * FROM v$logfile
SELECT * FROM v$log
特点:文件循环使用,一个实例至少两个日志文件。
手动切换日志:alter system switch logfile;
5、归档日志文件
功能:在线日志的备份;
归档与非归档区别:归档模式将在线日志按照策略进行备份形成归档日志文件,便于数据库恢复。
6、密码文件
功能:主要用于验证超级管理员的连接
路径:D:\app\Administrator\product\11.2.0\dbhome_1\database\PWDTEST.ora
密码文件手工创建: orapwd file=pwdTEST.ora password=AQA entries=2
五、数据库实例
1、查看数据库SGA: SQL> SHOW PARAMETER SGA
NAME TYPE VALUE
------------------------------------ -----------
sga_max_size big integer 1G
sga_target big integer 0 /*自动管理模式*/
2、查看数据库pGA:
SQL> SHOW PARAMETER pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 0 /*自动管理模式*/
第二天
第一部分 备份和还原数据库
1、exp / IMP
功能:定时备份、不完成恢复;
缺点:备份慢、恢复慢,备份数据恢复有丢失。
2、冷备份
功能:用于停机全库备份,
要求:生产数据库和目标数据库的环境一致(操作系统、实例名、数据库版本、各主要数据文件的路径),需要停数据库(用户停止系统操作)
步骤:1、停止数据库 (shutdown immediate);
2、备份数据文件、控制文件、日志文件;(D:\app\Administrator\oradata\TEST)
3、备份参数文件SPFILE; D:\app\Administrator\product\11.2.0\dbhome_1\database\SPFILETEST.ORA
3、expdp / impdp;
功能:主要用于数据库版本升级、跨平台迁移、也可以用户备份与恢复。
优点:备份时间较快、
步骤:
1、通过管理员权限 创建目录: CREATE DIRECTORY EXPDP AS 'E:\DATABASEBACKUP\EXPDP' (路径在服务器中是有效的, 通过 SELECT * FROM DBA_DIRECTORIES 查看创建情况。);
2、将该目录授权给相应用户: grant all ON DIRECTORY EXPDP TO system;
3、备份脚本:
D:\app\Administrator\product\11.2.0\dbhome_1\BIN\expdp.exe USERID=SYSTEM/AQA@TEST DIRECTORY=EXPDP DUMPFILE=(EXPDP01.DMP,EXPDP02.DMP,EXPDP03.DMP,EXPDP04.DMP) LOGFILE=TESTEXPDPLOG.LOG FULL=Y PARALLEL=4 REUSE_DUMPFILES=Y |
USERID:定义连接备份数据库的用户名、密码等;
DIRECTORY :调用上述创建和授权目录名(expdp);
DUMPFILE:备份的文件名(建议并发备份并定义多个文件名);
LOGFILE:定义备份日志的文件名
FULL :=y,全库备份
PARALLEL:并发数(建议与DUMPFILE文件数一致),不超过CPU核数;
REUSE_DUMPFILES:=y,自动覆盖以前的DUMPFILE文件。
4、rman
功能:通过全库备份+归档日志+在线日志的结合,实现完全恢复。强烈推荐。
步骤: 1、将数据库设置为归档模式。
SQL> shutdown immediate; 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount; ORACLE 例程已经启动。 Total System Global Area 1071333376 bytes Fixed Size 1375792 bytes Variable Size 553648592 bytes Database Buffers 511705088 bytes Redo Buffers 4603904 bytes 数据库装载完毕。 SQL> archive log list; 数据库日志模式 非存档模式 自动存档 禁用 存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 8 当前日志序列 10 SQL> alter database archivelog; 数据库已更改。 SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 8 下一个存档日志序列 10 当前日志序列 10 SQL> alter database open; 数据库已更改。 SQL> |
注意事项:默认归档文件保存位置(D:\app\Administrator\flash_recovery_area\TEST\ARCHIVELOG),其保存归档日志的大小受 db_recovery_file_dest_size 参数控制。实际工作中建议归档日志的路径自定义:alter system set log_archive_dest_1='location=E:\DATABASEBACKUP\archivelog'
2、RMAN 登录
RMAN TARGET=超级管理员 /密码@网络服务名 (服务器端可以空密码登录:>RMAN TARGET / )
3、备份数据库
BACKUP DATABASE
4、还原数据文件、还原数据库、还原控制文件、还原参数文件
restore datafile 文件号 (V$DATAFILE查看)
5、恢复数据库
通过归档日志和在线日志同步数据库的数据
recover database
6、打开数据库,恢复完成。
第二部分、数据库对象
1、表空间
创建表空间:CREATE TABLESPACE Chongqing DATAFILE 'D:\APP\ADMINISTRATOR\ORADATA\TEST\tudi1.dbf' SIZE 30M AUTOEXTEND ON NEXT 2m
补充:创建表空间必须先一个数据文件;
新增数据文件:alter TABLESPACE Chongqing add DATAFILE 'D:\APP\ADMINISTRATOR\ORADATA\TEST\tudi2.dbf' SIZE 50M AUTOEXTEND ON NEXT 2m
查询表空间的方法:select * from v$tablespace
表空间与数据文件的关系:一对多,select a.NAME ,A.TS# ,B.NAME,B.FILE# from v$tablespace a, v$datafile b where a.TS#=b.TS#
例: CREATE TABLESPACE Chongqing DATAFILE D:\app\Administrator\oradata\orcl\tudi1.dbf' SIZE 30M AUTOEXTEND ON NEXT 32m MAXSIZE 2048m EXTEND MANAGEMENT LOCAL; Size 大小 autoextend on 自动扩展容量 next 32m 表示一次自动扩展的大小 maxsize 2048m 最大2G extent management local 本地管理 |
使用户在某表空间上有使用权限:
alter user 用户名 quota unlimited on 表空间;
2、表
创建表:
Create Table zlsoft ( ID NUMBER(4,3) not null, 创建日期 DATE DEFAULT SYSDATE, 名称 VARCHAR2(30) ) tablespace chongqing; |
添加列
ALTER TABLE zlsoft ADD (属性 VARCHAR2(100));
修改列
ALTER TABLE zlsoft MODIFY (属性 VARCHAR2(150));
删除列
ALTER TABLE zlsoft DROP COLUMN 属性;
删除列会直接删除该列的数据
删除表
删除表用DROP TABLE语句,表中的所有数据和表的数据结构会被删除,表的所有索引会被删除,DROP TABLE语句不能回滚, 1、进行回收站,recycle。
重命名表
RENAME employees_bak TO test;
注:RENAME命令也适用于视图、序列和同义词的重命名。
截断表
TRUNCATE TABLE test;
TRUNCATE TABLE 语句删除表中的所有记录,释放表占用的存储空间, TRUNCATE TABLE语句不能回滚,比用DELETE语句删除所有记录快。 2、无法回滚、也无法通过回收站,数据块已经被标记为clean
3、视图
分类:普通视图和物化视图
视图的优点
1、通过限制对表的行预定义集合的存取,为表提供附加的安全性。
2、隐藏数据复杂性。
3、为用户简化命令。
4、为基本表的数据提供另一种观察角度,创建视图支持列的别名。
5、可将应用隔离于基本表定义的修改。
6、用于不用视图无法表示的查询。
7、可用于保存复杂查询。
创建视图 使用CREATE VIEW语句创建视图,支持列别名。例如: Create view table_space as select a.NAME as table01 ,A.TS# ,B.NAME as datafile,B.FILE# from v$tablespace a, v$datafile b where a.TS#=b.TS# 修改视图 create OR REPLACE view table_space as select a.NAME as table_SPCAE ,A.TS# ,B.NAME as datafile,B.FILE# from v$tablespace a, v$datafile b where a.TS#=b.TS# 删除视图 删除视图用DROP VIEW语句,删除视图不会丢失数据。例如: DROP VIEW table_space |