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数据库管理的主要内容,如果未能解决你的问题,请参考以下文章

sql Oracle代码片段

Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段

Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)(代码片段

YASnippet - emacs 的代码片段管理工具

使用 Git 来管理 Xcode 中的代码片段

massCode 一款优秀的开源代码片段管理器