Oracle数据库管理
Posted 蔡震
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库管理相关的知识,希望对你有一定的参考价值。
1.创建Oracle数据库的前期准备
在安装Oracle软件时,使用OUI自动创建数据库
2.使用DBCA图形化界面创建数据库
主文件目录的密码修改
计算机-管理-用户和文件组-找到oracle用户-鼠标右键修改密码
3.使用CREATE DATABASE命令及脚本创建数据库
4.启动数据库
4.1启动数据库的方法
C:\\User\\me>sqlplus / as sysdba
5.1 Oracle数据库的启动大致分为三个过程。
1)Oracle程序根据初始化参数文件启动数据库实例,这个过程将分配一定的内存给实例。
2)打开数据库的控制文件,读取控制文件中存储的各种数据库信息。
3)根据读取到的数据库信息,打开各种文件,如数据文件,日志文件。
根据启动过程可以分为三种模式
1)NOMOUNT模式
该模式分配内存给数据库实例,未打开数据库,不允许用户访问。(参数文件已打开)
2)MOUNT模式
该模式打开数据库控制文件,读取控制文件中的各种参数信息,如数据文件和日志文件的位置等。该状态装载数据库,但不打开数据库,不允许用户访问。(控制文件已打开)
3)OPEN模式
该模式打开数据库,允许用户访问,数据库对数据文件进行一系列的检查工作,该检查工作用于数据恢复。(数据库打开)
4.2 转换启动模式
1)启动数据库到nomount模式
C:\\User\\me>sqlplus / as sysdba SQL>startup nomount;
该模式下会分配内存给实例,启动实例,未打开控制文件,此时可通过参数文件获得控制文件的位置,因为此时参数文件已经是打开的。
SQL>show parameter control_files;
2)启动数据库到mount模式
C:\\User\\me>sqlplus / as sysdba
SQL>startup mount;
该模式下已经打开控制文件,读取控制文件中的各种参数信息,如数据文件和日志文件的位置等。可以通过动态视图v$controlfile获得控制文件的存储目录
SQL>select status,name,block_size from v$controlfile
3)启动数据库到OPEN模式
方法1:使用指令startup open或startup(默认启动到OPEN状态) 方法2:如果数据库是mount状态,可以使用alter database open指令切换到OPEN状态
该模式打开数据库,允许用户访问。此模式下,数据库将打开数据文件,日志文件等,并对数据库进行一系列的检查工作,这些检查工作用于数据恢复
4)从nomount转换到mount状态
SQL>alter database monut
5.关闭数据库
要关闭数据库需要用户以SYSDBA的身份登陆,只有以SYSDBA的身份登陆才具有关闭数据库的权限。
C:\\User\\me>sqlplus / as sysdba
SQL>startup
SQL>shutdown
5.1数据库关闭的三个步骤
1)Oracle数据库首先关闭打开的各种数据文件,日志文件等。
2)然后关闭打开的控制文件
3)关闭实例
根据关闭过程可以分为三个过程
1)ClOSE数据库
SQL>alter database close
此时通过v$database的open_mode状态,发现此时数据库是MOUNT模式,即关闭了数据文件,日志文件等。
2).DISMOUNT数据库
SQL>alter database dismount;
通过查看v$database的open_mode状态,发现此时数据库提示"数据库未加载"的错误,因为在当前模式下,已经关闭了控制文件。
此时查看v$instance的状态发现仍是开启的,也就是此时实例并未关闭。
3)SHUTDOWN数据库
Oracle关闭打开的数据库实例,释放SGA内存,结束所有后台进程。
SQL>shutdown
5.2关闭数据库的四种方式
1)shutdown normal
直接输入shutdown时默认会跟上normal参数,此方式关闭数据库时,不允许新的数据库连接,只有当前的所有连接当前的所有连接都退出时才会关闭数据库,这是一种安全的关闭数据库的方式,但是如果有大量用户连接,则需要较长时间才能关闭数据库。
2)shutdown immediate
这种方式能够较快且安全地关闭数据库,此时数据库会做一些操作,中断当前事务,回滚未提交的事务,强制断开所有用户的连接,执行检查点把脏数据写到数据文件中.但是如果事务很多,且业务量很大,则中断事务以及回滚数据,断开用户连接都会耗费时间.
3)shutdown transactional
数据库当前的连接继续执行,但不允许新的连接,一旦当前的所有事务执行完毕,则关闭数据库,如果当前的某些事务一直执行,或许会用几天的时间才能关闭数据库。
4shutdown abort
断开所有用户连接,拒绝新的连接,拒绝新的连接,断开当前的所有执行事务,立即关闭数据库,当数据库重启时需要进行数据库的恢复。
6.Oracle数据库初始化参数文件
初始化参数文件是一个很重要的文件,在数据库实例启动时,Oracle会读取该文件中的参数来为实例分配内存,获得一些资源的位置,设置用户进程,获得控制文件的位置以及用户的登陆信息
6.1参数文件的分类
Oracle数据库初始化文件主要有两类,PFLE文件和SPFILE文件,其中PFILE文件是一个文本文件,可以使用文本编辑器编辑,而SPFILE是二进制文件,只能通过Oracle的命令来修改。
1)PFILE,修改文件中的参数不会在当前实例中生效,只有重新启动实例加载参数文件后,所做的修改才会生效。因此又称为静态参数文件,其默认名字为init<ORACLE_SID>.ora
2)SPFIEL,修改参数文件中的参数后马上在实例中生效,因此又称为动态参数文件
Oracle在启动实例时,会按照下面的顺序来查找数据库初始化参数文件.
1)首先使用服务器上的spfile<ORACLE_SID>.ora文件启动数据库。
2)其次时查找服务器上默认的SPFILE文件启动
3)如果没有找到SPFILE,就将init<ORACLE_SID>.ora文件作为启动参数文件。
4)如果没有找到init<ORACLE_SID>.ora文件,则使用服务器上默认的PFILE来启动数据库.
因此数据库在启动时,默认使用动态参数文件来启动,如果找不到动态参数文件,才选择静态参数文件来启动。
使用静态参数文件启动数据库
startup pfile=F:\\app\\cainame1\\admin\\orcl\\pfile\\init.ora.118201895725
6.3创建初始化参数文件
1)从SPFILE创建PFILE
SQL>startup SQL>create pfile form spfile;
2)创建静态参数文件时指定参数文件的位置
SQL>create pfile=\'f:\\test.ora\' from spfile;
3)从pfile创建spfile
SQL>create spfile from pfile=\'f:\\test.ora\';
6.4修改初始化参数
1.数据库初始化参数有一系列参数名称和参数值组成
先使用desc命令查看v$parameter结构
SQL>desc v$parameter
使用SQL查看db_name的值
SQL>select value from v$parameter where name=\'db_name\';
Oracle提供了alter system命令来修改参数值,其参数值为
ALTER SYSTEM SET Parameter=value<comment=\'text\'><deferred><scope=memory|spfile|both><sid=\'sid|*\'>
Parameter=value 为某个参数赋值
可选参数:
comment=\'text\' 提供注释信息
deferred 使用该该参数表示该修改对当前会话无效
scope=memory|spfile|both 设置修改的参数保存的位置,memory指的是内存,重启数据库实例时,该参数无效,spfile指的是动态参数文件,重启数据库实例后,该参数仍然有效。both表示两个地方都存。
sid=\'sid|* 用于集群系统,默认值是sid=\'*\',其作用是为集群中所有实例指定唯一的参数设置。
2.查询参数
查询数据库process参数值
SQL>col type for a10 SQL>show parameter process
更改数据库process参数值
SQL>alter system set processes=200 scope=spfile;
这里发现processess的参数并没有改变,这是因为设置了参数"scope=spfile",将参数保存在SPFILE中,只有重启数据库后才生效.
取消更改的processess参数值
SQL>alter system reset processes scope=spfile;
重启后参数生效
以上是关于Oracle数据库管理的主要内容,如果未能解决你的问题,请参考以下文章
Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段
Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)(代码片段