5、ORACLE的安装6、ORACLE的启动关闭7、SQL操作8、ORACLE的备份恢复Oracle10g的安装•5ORACLE10g的安装E_mail:tengyc@263.net15•默认ORACLE_BASE–在Windows中,默认的ORACLE_BASE目录是:D:\oracle\product\10.1.0–在UNIX中,默认的ORACLE_BASE目录是:/pm/app/oracle/10.1.0•所有的ORACLE软件文件和数据库文件都位于ORACLE_BASE下面的子目录中。•ORACLE_HOME是访问所有ORACLE软件的路径。•Admin文件夹,存储初始化文件和日志文件•Oradata\***文件夹,存储数据库数据文件.dbf、控制文件.ctl、重做日志文件.logE_mail:tengyc@263.net16E_mail:tengyc@263.net17E_mail:tengyc@263.net18E_mail:tengyc@263.net19•HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb10g_home1/•ORACLE_HOME键值:主目录路径•ORACLE_SID键值:默认实例名称;CMD中可以通过SETORACLE_SID命令设置•NLS_LANS键值:字符集E_mail:tengyc@263.net20•NLS_LANG格式:NLS_LANG=language_territory.charset•其中:language指定服务器消息的语言。territory指定服务器的日期和数字格式。Charset指定字符集如:NLS_LANG=SIMPLIFIEDCHINESE_CHINA.ZHS16GBK其中:SIMPLIFIEDCHINESE表示简体中文•CHINA表示中文日期格式•ZHS16GBK表示编码E_mail:tengyc@263.net216Oracle系统的启动和关闭OPENMOUNTNOMOUNTSHUTDOWN为该实例打开所有在控制文件中描述的文件。为该实例,打开控制文件。实例启动启动和关闭的阶段STARTUPSHUTDOWNE_mail:tengyc@263.net24数据字典和动态性能视图•1.NOMOUNT启动例程时,ORACLE会打开参数文件,分配SGA并启动后台进程。因此例程处于NOMOUNT状态时,只能访问从SGA中获取信息的动态性能视图。SGA----V$PARAMETERV$SGAV$OPTIONV$PROCESSV$SESSIONV$VERSIONV$INSTANCE•2.MOUNT装载数据库时,ORACLE根据初始化参数control_file打开所有控制文件。当例程处于MOUNT状态时,不仅可以访问从SGA中获取信息的动态性能视图,还可以访问从控制文件中获取信息的动态性能视图。控制文件-------V$THREADV$CONTROLFILEV$DATABASEV$DATAFILEV$DATAFILE_HEADERV$LOGFILE•3.OPEN数据库打开时,ORACLE按照控制文件所记载的信息打开所有数据文件和重做日志。除了可以访问SGA和控制文件中获取信息的动态性能视图外,还可以访问与ORACLE性能相关的动态性能视图(V$FILESTATV$SESSION_WAITV$WAITSTAT)注意的是,只有处于OPEN状态时,才能访问数据字典视图。E_mail:tengyc@263.net25•通过查询动态性能视图一方面可以获得性能数据,另一方面还可以取得与磁盘和内存结构相关的其他信息。多数动态性能视图只能由特权用户和DBA用户查询。•静态数据字典视图和动态数据字典视图(动态性能视图)的区别••动态性能视图与数据字典的区别•a:数据字典视图名一般用复数,而动态性能视图名一般用单数,比如dba_tablepsacesvsv$tablespace。b:数据字典视图只有在数据库open的情况下才可以访问,而部分动态性能视图可以数据库非open状态下使用。c:数据字典视图里看到的列信息一般都是大写,而动态性能视图里看到的一般都是小写。d:数据字典视图里的信息是静态的,在数据库关闭后不丢失;而动态性能视图里的信息是动态的,关闭•selectnamefromv$fixed_table;//查询所有动态性能视图E_mail:tengyc@263.net26常用的动态性能视图•V$INSTANCE获取当前例程的详细信息。•V$SGA显示SGA主要组成部分•V$SGAINFO取得SGA的更详细信息•V$PARAMETER取得初始化参数的详细信息•V$VERSION获取ORACLE版本的详细信息•V$PROCESS显示与ORACLE相关的所有进程信息(包括后台进程和服务器进程)•V$BGPROCESS显示后台进程详细信息•V$DATABASE取得当前数据库的详细信息•V$CONTROLFILE取得当前数据库所有控制文件的信息。•V$DATAFILE取得当前数据库的所有数据文件的详细信息•V$LOCK显示锁信息,通过与V$SESSION进行连接查询,可以显示占有锁的会话,以及等待锁的会话。•V$TABLESPACE显示表空间信息E_mail:tengyc@263.net27•数据字典视图是基于数据字典基表所建立的视图,普通用户可以通过查询数据字典视图取得系统信息。数据字典视图主要包括user_xxx,all_xxx,dba_xxx三种类型•常用数据字典•user_tables;用于显示当前用户所拥有的所有表,它只返回用户所对应方案的所有表•all_tables;用于显示当前用户可以访问的所有表,它不仅会返回当前用户方案的•dba_tables;它会显示所有方案拥有的数据库表。但是查询这种数据库字典视图,要求用户必须是dba角色或是有selectanytable系统权限。所有表,还会返•dba_users,可以显示所有数据库用户的详细信息;•dba_sys_privs,可以显示用户所具有的系统权限;•dba_tab_privs,可以显示用户具有的对象权限;•dba_col_privs,可以显示用户具有的列权限;•dba_role_privs,可以显示用户所具有的角色。E_mail:tengyc@263.net28登陆•sqlplus/assysdba;//数据库本机showuser;//显示当前的用户名•showparameterinstance_name;//显示当前的实例名••sqlplus•system/sd****@orclassysdba•showuser;•showparameterinstance_name;•showparameter;//•sys是超级用户,具有最高权限,具有sysdba角色,默认密码是:change_on_install•system是管理操作员,具有sysoper角色,没有createdatabase的角色•System作为DBA登陆必须加上assysdba实验:分步打开数据库•Sqlplus•Conn/assysdba//本机数据库连接到一个空实例•Startupnomount//nomount启动数据库•(在Nomount状态就出现问题,通常是系统问题,OS类错误一般说明是系统资源不足等;当进行OS补丁应用时一定要认真确认,对关键补丁应当进行服务器重启验证,不能掉以轻心。)•数据库的Nomount过程实质上就是在创建实例,这个步骤只和参数文件相关,在完成实例的创建之后,Oracle就可以逐步导航,完成数据库的加载,打开等工作E_mail:tengyc@263.net32NOMOUNT状态下查询动态性能视图•启动数据库到Nomount状态•在启动的第一步骤,Oracle首先寻找参数文件(pfile/spfile),然后根据参数文件中的设置(如内存分配等设置),创建实例(INSTANCE),分配内存,启动后台进程。Nomount的过程也就是启动数据库实例的过程。•在这个状态下可以利用动态性能视图查询数据的基本信息。•如v$instance,v$sga,v$bgprocess•例:showparameterspfile命令来检查数据库是否使用了spfile文件,如果value不为Null,则数据库使用了spfile文件•例:SELECT*FROMV$BGPROCESSWHERENAMELIKE‘%MON’;查询后台进程启动情况•此时并不能查询数据字典;•例:DESCUSER_TABLES;//显示错误E_mail:tengyc@263.net33showparameterbackground_dump_dest//查看告警日志文件E_mail:tengyc@263.net34启动数据库到MOUNT状态•2ALTERDATABASEMOUNT;•//加载控制文件,让实例和数据库相关联,但并没有打开数据库,该选项可以用来修改数据库的运行模式或进行数据库恢复。•在这个状态下可以:开启/关闭数据库的归档模式;开启/关等等闭数据库的闪回;重命名数据库文件;E_mail:tengyc@263.net35打开数据库•实验:将数据库设置为归档模式,打开数据库;•在MOUNT状态下用命令:ALTERDATABASEARCHIVELOG;•SELECTINSTANCE_NAME,STATUS,ARCHIVERFROMV$INSTANCE;•查看状态E_mail:tengyc@263.net36STARTUP命令STARTUPPFILE=/DISK1/initU15.ora启动实例,打开数据库:ALTERDATABASE命令•把数据库的状态从NOMOUNT状态修改为MOUNT状态:ALTERDATABASEdatabaseMOUNT;•以只读方式打开数据库:ALTERDATABASEdatabaseOPENREADONLY;以只读方式打开数据库•任何数据库都可以以只读方式打开•只读数据库可以用来:–执行查询–使用本地管理的表空间,执行磁盘排序–把数据文件,而不是表空间,设置为联机或者脱机–为脱机文件和表空间执行恢复不同类型的SHUTDOWN资金转移从老账号删除资金提交退出登录检查账号平衡插入新资金ShutdownNormalShutdownImmediateShutdownTransactionalDatabasedownDatabasedownDatabasedown12345显示当前的参数值•使用命令:•查询V$PARAMETER动态性能视图:SHOWPARAMETERcontrolSELECTnameFROMv$parameterWHEREnameLIKE‘%control%’;动态初始化参数ALTERSESSIONSETSQL_TRACE=true;ALTERSYSTEMSETTIMED_STATISTICS=true;ALTERSYSTEMSETSORT_AREA_SIZE=131072DEFERRED;•某些初始化参数可以在实例运行期间修改允许和禁止受限会话•使用STARTUP命令限制对数据库的访问:•使用ALTERSYSTEM命令把数据库设置为受限模式:STARTUPRESTRICTALTERSYSTEMENABLERESTRICTEDSESSION;Oracle中造成一些表被死锁或者会话异常退出,如执行了更新记录操作后,既没有commit也没有rollback,网络就断开了,也会造表或记录被锁住,待到超时后才会被解开,那样都会造成应用操作被阻塞。终止会话SELECTsid,serial#FROMv$sessionWHEREusername=‘SCOTT’;ALTERSYSTEMKILLSESSION‘7,15’;•通过动态性能视图V$SESSION识别要终止的会话:•执行ALTERSYSTEM命令:•7SQL操作E_mail:tengyc@263.net46SQL操作•创建数据库:•开始=程序=