linux手动创建oracle实例全过程
2017-11-28 18:22
573 查看
先理解几个概念 oracle跟mysql和mssql的不同,提出了实例和表空间等的概念
实例:即一个运行的服务,不含任何物理数据和内容
数据库:依托于实例运行,数据库和实例可以使1对1的关系,也可以是一对多的管理,即可以有不同实例加载数据库,但是一个实例只能加载一个数据库
一个操作系统可以运行多个数据库实例
因此,想要创建一个新的数据库,必须先运行一个实例。
但是oracle有表空间的概念,不同用户可以设置不同表空间的访问权,相当于把数据库划分出多个子模块,供不同用户使用
所以,在一般的情况下,利用表空间和用户控制方式,即可以实现分开独立的数据表管理
创建表空间和用户比较简单,利用plsql即可以实现
创建数据库实例(非图形界面):
//利用crt进入linux操作系统
$su - oracle //进入oracle用户模式下
$echo $ORACLE_HOME //查看oracle的home目录位置 假如home目录/opt/11g/oracle/product/11.2.0/dbhome_1,那么执行cd $ORACLE_HOME等效于cd /opt/11g/oracle/product/11.2.0/dbhome_1
$echo $ORACLE_BASE //查看oracle的base目录
//创建实例配置文件
$cd $ORACLE_HOME
$cd dbs
$cp initorcl.ora initvcenter.ora
$vi initvcenter.ora
db_name='vcenter'
vcenter.__java_pool_size=402653184
vcenter.__large_pool_size=134217728
vcenter.__oracle_base='/opt/11g/oracle'
vcenter.__pga_aggregate_target=11341398016
vcenter.__sga_target=34024194048
vcenter.__shared_io_pool_size=0
vcenter.__shared_pool_size=7985954816
vcenter.__streams_pool_size=67108864
*.audit_file_dest='/opt/11g/oracle/admin/vcenter/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files = (ora_control3, ora_control4)
*.db_block_size=8192
*.db_domain=''
*.db_name='vcenter'
*.db_recovery_file_dest='/opt/11g/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4385144832
*.diagnostic_dest='/opt/11g/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=YFZD2XDB)'
*.local_listener=''
*.open_cursors=300
*.pga_aggregate_target=11333009408
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=34001125376
*.undo_tablespace='UNDOTBS1'
//创建实例相关目录--作用未理解
$cd $ORACLE_BASE
$cd admin
$mkdir vcenter
$cd vcenter
$mkdir adump bdump cdump pfile udump
//创建vcenter数据文件
cd /oradata
mkdir vcenter
//启动实例
$export ORACLE_SID=vcenter
$sqlplus /nolog
sql>conn /as sysdba;
sql>startup nomount;
sql>select instance_name from v$instance; //正常启动后执行语句可以看到运行的实例
//创建密码文件--作用还未理解
$$ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapwvcenter password=Aa123456* force=y //文件生成在$ORACLE_HOME/dbs目录下
//创建数据库脚本如下,进入到sql界面执行下面语句
sql>
CREATE DATABASE vcenter
USER SYS IDENTIFIED BY sys
USER SYSTEM IDENTIFIED BY manager
LOGFILE GROUP 1 ('/oradata/vcenter/redo01.log') SIZE 20M,
GROUP 2 ('/oradata/vcenter/redo02.log') SIZE 20M,
GROUP 3 ('/oradata/vcenter/redo03.log') SIZE 20M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET UTF8
DATAFILE '/oradata/vcenter/system01.dbf' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/oradata/vcenter/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE tbs_1 datafile '/oradata/vcenter/tbs_1.dbf' size 50m
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/oradata/vcenter/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/oradata/vcenter/undotbs1.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
//其中UNDO TABLESPACE undotbs1必须与实例配置文件中的名字完全一样
sql>select status from v$instance;
//status为open表示成功
//运行后续脚本,创建数据字典及相关视图
SQL>conn sys as sysdba
SQL>@?/rdbms/admin/catalog.sql;
//此过程可能需要10分钟左右
SQL>@?/rdbms/admin/catproc.sql;
/此过程可能需要15分钟左右
SQL>@?/rdbms/admin/catblock.sql;
SQL>@?/rdbms/admin/catoctk.sql;
SQL>@?/rdbms/admin/owminst.plb;
SQL>conn system/ manager
SQL>@?/sqlplus/admin/pupbld.sql;
SQL>@?/sqlplus/admin/help/hlpbld.sql helpus.sql
//配置listener.ora和tnsnames.ora,这两个文件在$ORACLE_HOME/network/admin目录下
listener.ora
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME = vcenter)
(ORACLE_HOME = /opt/11g/oracle/product/11.2.0/dbhome_1)
(SID_NAME = vcenter)
)
)
tnsnames.ora
vcenter =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = vcenter)
)
)
很多具体细节还不是很明白,以后弄通了再补充!
参考资料:
http://blog.csdn.net/sunchenglu7/article/details/39676659 http://www.linuxidc.com/Linux/2014-08/105552.htm
-------------------------------------------------------------------------------------------
服务器重启后,如何启动oracle
su - oracle
$lsnrctl status
$lsnrctl start //启动监听
$export ORACLE_SID=vcenter
$sqlplus /nolog
sql>conn /as sysdba;
sql>startup
不过oracle启动模式有3种:
Startup nomount (nomount模式)启动实例不加载数据库。
Startup mount (mount模式)启动实例加载数据库但不打开数据库
Startup (open 模式)启动实例加载并打开数据库,就是我们上面所用的命令
Nomount模式中oracle仅为实例创建各种内存结构和服务进程,不会打开任何数据库文件,
所以说:
1) 创建新数据库
2) 重建控制文件
这2种操作都必须在这个模式下进行。
Mount模式中oracle只装载数据库但不打开数据库,所以说:
1) 重命名数据文件
2) 添加、删除和重命名重做日子文件
3) 执行数据库完全恢复操作
4) 改变数据库的归档模式
a96e
这4种操作都必须在这个模式下进行
Open模式(就是我们上面的startup不带任何参数的)正常启动。
当然这3种模式之间可以转换:
Alter database mount(nomount模式)—〉alter database open(mount 模式)—〉(open模式)
当然还有其它一些情况,在我们open模式下可以将数据库设置为非受限状态和受限状态
在受限状态下,只有DBA才能访问数据库,所以说:
1) 执行数据导入导出
2) 使用sql*loader提取外部数据
3) 需要暂时拒绝普通用户访问数据库
4) 进行数据库移植或者升级操作
关闭服务器防火墙
# serviceiptables stop 关闭防火墙,会话级起效,重启后失效
# chkconfigiptables off 不随操作系统自动启动
oracle数据库备份与还原
表导出与还原
imp admin/admin@实例名 file=/dbbackup/table_20180109.dmp tables=yfplss03
exp admin/admin@实例名 file=/dbbackup/table_20180109.dmp .dmp log=$DIR/$DATE'/table_log_'$DATE'.log' TABLES=table
完全导出
exp yfplss03/yfplss03@YFZD2 file=$DIR/$DATE'/sbkfw_'$DATE'.dmp' log=$DIR/$DATE'/sbkfw_log_'$DATE'.log'
有三种主要的方式(完全、用户、表)
1、完全:
EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
如果要执行完全导出,必须具有特殊的权限
2、用户模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC
这样用户SONIC的所有对象被输出到文件中。
3、表模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)
这样用户SONIC的表SONIC就被导出
2、IMP:
具有三种模式(完全、用户、表)
1、完全:
IMP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
2、用户模式:
IMP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP FROMUSER=SONIC TOUSER=SONIC
这样用户SONIC的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据。
3、表模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)
这样用户SONIC的表SONIC就被导入。
http://blog.csdn.net/lsyuan1989/article/details/50418665 https://www.cnblogs.com/yugen/archive/2010/07/25/1784763.html
实例:即一个运行的服务,不含任何物理数据和内容
数据库:依托于实例运行,数据库和实例可以使1对1的关系,也可以是一对多的管理,即可以有不同实例加载数据库,但是一个实例只能加载一个数据库
一个操作系统可以运行多个数据库实例
因此,想要创建一个新的数据库,必须先运行一个实例。
但是oracle有表空间的概念,不同用户可以设置不同表空间的访问权,相当于把数据库划分出多个子模块,供不同用户使用
所以,在一般的情况下,利用表空间和用户控制方式,即可以实现分开独立的数据表管理
创建表空间和用户比较简单,利用plsql即可以实现
创建数据库实例(非图形界面):
//利用crt进入linux操作系统
$su - oracle //进入oracle用户模式下
$echo $ORACLE_HOME //查看oracle的home目录位置 假如home目录/opt/11g/oracle/product/11.2.0/dbhome_1,那么执行cd $ORACLE_HOME等效于cd /opt/11g/oracle/product/11.2.0/dbhome_1
$echo $ORACLE_BASE //查看oracle的base目录
//创建实例配置文件
$cd $ORACLE_HOME
$cd dbs
$cp initorcl.ora initvcenter.ora
$vi initvcenter.ora
db_name='vcenter'
vcenter.__java_pool_size=402653184
vcenter.__large_pool_size=134217728
vcenter.__oracle_base='/opt/11g/oracle'
vcenter.__pga_aggregate_target=11341398016
vcenter.__sga_target=34024194048
vcenter.__shared_io_pool_size=0
vcenter.__shared_pool_size=7985954816
vcenter.__streams_pool_size=67108864
*.audit_file_dest='/opt/11g/oracle/admin/vcenter/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files = (ora_control3, ora_control4)
*.db_block_size=8192
*.db_domain=''
*.db_name='vcenter'
*.db_recovery_file_dest='/opt/11g/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4385144832
*.diagnostic_dest='/opt/11g/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=YFZD2XDB)'
*.local_listener=''
*.open_cursors=300
*.pga_aggregate_target=11333009408
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=34001125376
*.undo_tablespace='UNDOTBS1'
//创建实例相关目录--作用未理解
$cd $ORACLE_BASE
$cd admin
$mkdir vcenter
$cd vcenter
$mkdir adump bdump cdump pfile udump
//创建vcenter数据文件
cd /oradata
mkdir vcenter
//启动实例
$export ORACLE_SID=vcenter
$sqlplus /nolog
sql>conn /as sysdba;
sql>startup nomount;
sql>select instance_name from v$instance; //正常启动后执行语句可以看到运行的实例
//创建密码文件--作用还未理解
$$ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapwvcenter password=Aa123456* force=y //文件生成在$ORACLE_HOME/dbs目录下
//创建数据库脚本如下,进入到sql界面执行下面语句
sql>
CREATE DATABASE vcenter
USER SYS IDENTIFIED BY sys
USER SYSTEM IDENTIFIED BY manager
LOGFILE GROUP 1 ('/oradata/vcenter/redo01.log') SIZE 20M,
GROUP 2 ('/oradata/vcenter/redo02.log') SIZE 20M,
GROUP 3 ('/oradata/vcenter/redo03.log') SIZE 20M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET UTF8
DATAFILE '/oradata/vcenter/system01.dbf' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/oradata/vcenter/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE tbs_1 datafile '/oradata/vcenter/tbs_1.dbf' size 50m
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/oradata/vcenter/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/oradata/vcenter/undotbs1.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
//其中UNDO TABLESPACE undotbs1必须与实例配置文件中的名字完全一样
sql>select status from v$instance;
//status为open表示成功
//运行后续脚本,创建数据字典及相关视图
SQL>conn sys as sysdba
SQL>@?/rdbms/admin/catalog.sql;
//此过程可能需要10分钟左右
SQL>@?/rdbms/admin/catproc.sql;
/此过程可能需要15分钟左右
SQL>@?/rdbms/admin/catblock.sql;
SQL>@?/rdbms/admin/catoctk.sql;
SQL>@?/rdbms/admin/owminst.plb;
SQL>conn system/ manager
SQL>@?/sqlplus/admin/pupbld.sql;
SQL>@?/sqlplus/admin/help/hlpbld.sql helpus.sql
//配置listener.ora和tnsnames.ora,这两个文件在$ORACLE_HOME/network/admin目录下
listener.ora
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME = vcenter)
(ORACLE_HOME = /opt/11g/oracle/product/11.2.0/dbhome_1)
(SID_NAME = vcenter)
)
)
tnsnames.ora
vcenter =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = vcenter)
)
)
很多具体细节还不是很明白,以后弄通了再补充!
参考资料:
http://blog.csdn.net/sunchenglu7/article/details/39676659 http://www.linuxidc.com/Linux/2014-08/105552.htm
-------------------------------------------------------------------------------------------
服务器重启后,如何启动oracle
su - oracle
$lsnrctl status
$lsnrctl start //启动监听
$export ORACLE_SID=vcenter
$sqlplus /nolog
sql>conn /as sysdba;
sql>startup
不过oracle启动模式有3种:
Startup nomount (nomount模式)启动实例不加载数据库。
Startup mount (mount模式)启动实例加载数据库但不打开数据库
Startup (open 模式)启动实例加载并打开数据库,就是我们上面所用的命令
Nomount模式中oracle仅为实例创建各种内存结构和服务进程,不会打开任何数据库文件,
所以说:
1) 创建新数据库
2) 重建控制文件
这2种操作都必须在这个模式下进行。
Mount模式中oracle只装载数据库但不打开数据库,所以说:
1) 重命名数据文件
2) 添加、删除和重命名重做日子文件
3) 执行数据库完全恢复操作
4) 改变数据库的归档模式
a96e
这4种操作都必须在这个模式下进行
Open模式(就是我们上面的startup不带任何参数的)正常启动。
当然这3种模式之间可以转换:
Alter database mount(nomount模式)—〉alter database open(mount 模式)—〉(open模式)
当然还有其它一些情况,在我们open模式下可以将数据库设置为非受限状态和受限状态
在受限状态下,只有DBA才能访问数据库,所以说:
1) 执行数据导入导出
2) 使用sql*loader提取外部数据
3) 需要暂时拒绝普通用户访问数据库
4) 进行数据库移植或者升级操作
关闭服务器防火墙
# serviceiptables stop 关闭防火墙,会话级起效,重启后失效
# chkconfigiptables off 不随操作系统自动启动
oracle数据库备份与还原
表导出与还原
imp admin/admin@实例名 file=/dbbackup/table_20180109.dmp tables=yfplss03
exp admin/admin@实例名 file=/dbbackup/table_20180109.dmp .dmp log=$DIR/$DATE'/table_log_'$DATE'.log' TABLES=table
完全导出
exp yfplss03/yfplss03@YFZD2 file=$DIR/$DATE'/sbkfw_'$DATE'.dmp' log=$DIR/$DATE'/sbkfw_log_'$DATE'.log'
有三种主要的方式(完全、用户、表)
1、完全:
EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
如果要执行完全导出,必须具有特殊的权限
2、用户模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC
这样用户SONIC的所有对象被输出到文件中。
3、表模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)
这样用户SONIC的表SONIC就被导出
2、IMP:
具有三种模式(完全、用户、表)
1、完全:
IMP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
2、用户模式:
IMP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP FROMUSER=SONIC TOUSER=SONIC
这样用户SONIC的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据。
3、表模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\SONIC.DMP OWNER=SONIC TABLES=(SONIC)
这样用户SONIC的表SONIC就被导入。
http://blog.csdn.net/lsyuan1989/article/details/50418665 https://www.cnblogs.com/yugen/archive/2010/07/25/1784763.html
相关文章推荐
- 在LINUX平台上手动创建数据库(oracle 10g)(在一个oracle服务器上启动两个实例)
- 【转载】[Oracle] Linux下手动创建数据库过程
- [Oracle] Linux下手动创建数据库过程
- oracle dba 手动创建数据实例
- oracle创建实例的过程
- oracle 11g r1 linux环境手工创建实例(含脚本)
- 设置 Oracle,Sqlplus,Linux 设置为UTF8 专治中文乱码 ,查看表的创建过程
- 在LINUX平台上手动创建多个实例(oracle11g)
- 在LINUX平台上手动创建数据库(oracle 10g)
- oracle创建实例的过程
- 创建ORACLE实例与设置监听器过程
- 创建ORACLE实例与设置监听器过程(续)——监听器更详细的设置
- Oracle Data Guard Linux 平台 Logical Standby 创建实例
- Oracle手动创建实例
- linux手工创建Oracle实例操作说明
- Oracle 手动创建实例(windows)
- 在LINUX平台上手动创建数据库(oracle 10g)
- ORACLE创建实例的过程(DBCA)
- 在LINUX平台上手动创建多个实例(oracle11g)
- Linux中Oracle创建实例