oracle 11g手工建数据库过程
创建需求和目的
1、需要把11机器上的oracle库中的表导入到12机器oracle库
2、11机器上的数据库fp在12机器上不存在,需要创建新库,以便导入。
3、我们只需导入业务库shp即可,不需要把system,sysaux,temp等系统表空间一并导入,例如:mysql你在导库的时候只是导业务库或表,而不会导入mysql.user这样的系统表
原理是一样的。
所以你对于创建新库的时候,哪些是业务表空间,哪些是系统表空间还是从oracle角度了解清楚他们都是做什么的。
4、导入时需要注意字符集的差异,你在建库的时候就要设置好字符集。
无非一个是业务库,一个是系统运行需要的比如:SYSTEM表空间存储了必要大量的系统表,包括一些数据字典和动态性能视图等。
环境采样
oracle@prd:/home/oracle$cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
oracle@prd:/home/oracle$uname -r
3.10.0-327.el7.x86_64
oracle:Release 11.2.0.4.0 Production,单机版
步骤一、指定新的SID
oracle@prd:/home/oracle$cat .bash_profile //查看下环境变量设置情况
# .bash_profile # Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=/u01/oracle/product/11.2.0
##su - oracle 进入默认显示的ORACLE_SID
export ORACLE_SID=prd
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export PS1="`whoami`@$ORACLE_SID:"'$PWD$'
export DB_ALERT=/u01/oracle/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace
stty erase ^H
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias lsnrctl='rlwrap lsnrctl' //指定新的sid,实际就是切换实例,我们想登录某个数据库实例就需要
//重新设置当前的ORACLE_SID,这样才能进入到个是数据库的实例中
//这点在操作中要注意。
oracle@prd$>export ORACLE_SID=fp
oracle@prd$>echo $ORACLE_SID
oracle@prd:/home/oracle$sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sat Mar 19 02:17:35 2022
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
//已连接到某空闲实例. //意思就是这个实例实际表示两种意思
//1、该实例未启动,启动数据库需三个阶段 startup nomount,alter database mount,alter database open;
每个阶段实际都会定义一些操作,只有该阶段才能进行相关操作。例如:select status from v$instance; 查询实例,首先你得 startup nomount才能查询
//2、该实例实际未存在也会这样显示提示。
步骤二、创建密码文件
为创建数据库,我们必须选择一种数据库管理员身份验证模式,这里有两种方法:
With a password file
With operating system authentication
oracle@prd$> orapwd file=/u01/oracle/product/11.2.0/dbs/orapwfp password=oracle
步骤三、创建初始化参数文件
我是copy的其他数据库的参数文件,这里要注意起名是有规则的 init$oracle_id.ora(你也可以利用init.ora这个模板,把名称改为我们需要的文件)
创建文件后放在了 /u01/oracle/product/11.2.0/dbs/initfp.ora (我们这里数据库名和实例名都是fp)
这个当中我创建了
1、/u01/oracle/oradata/fp和/u01/oracle/fast_recovery_area/fp目录
2、mkdir -p /u01/oracle/admin/fp/adump //连续创建目录 mkdir -p
db_name='fp'
memory_target=1G
processes = 150
audit_file_dest='/u01/oracle/admin/fp/adump'
audit_trail ='db'
db_block_size=8192
db_domain='oracle.com'
db_recovery_file_dest='/u01/oracle/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=test1XDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
# You may want to ensure that control files are created on separate physical
# devices
control_files =('/u01/oracle/oradata/fp/control01.ctl','/u01/oracle/fast_recovery_area/fp/control02.ctl')
compatible ='11.2.0.4.0'
注意:control01.ctl,.....control02.ctl....等 control_files这里根据需求填写多个控制文件路径,这个文件不需要事先创建,指定即可路已经和文件名即可,
在创建数据库时会自动创建指定的文件,control01.ctl只需要指定目录即可,默认如果没有会自动创建
步骤四、创建服务器动态参数文件spfile(我们利用pfile文件来创建)
oracle@prd:/home/oracle$>export ORACLE_SID=fp
oracle@prd:/home/oracle$>echo $ORACLE_SID
oracle@prd:/home/oracle$sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sat Mar 19 02:17:35 2022
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> create spfile from pfile='/u02/oracle/product/11.2.0/dbs/initfp.ora'; //创建spfile,不用启动数据库。
//initfp.ora文件是从init.ora
步骤五、开始启动第一阶段,nomount阶段
idle> startup nomount
ORACLE instance started.
Total System Global Area 313159680 bytes
Fixed Size 2175328 bytes
Variable Size 213913248 bytes
Database Buffers 92274688 bytes
Redo Buffers 4796416 bytes
//因为你当前的环境变量以及实例文件都能找到,所以你startup nomount可以不指定参数文件
//Oracle根据参数文件的内容,创建了instance,分配了相应的sga内存区域,启动了相关的后台进程
//观察告警日志文件(alert_fp.log),可以看到这一阶段的启动过程:读取参数文件,利用相关参数启动实例
[root@rac-12c-2 ~]# locate alert_fp.log
/u01/oracle/diag/rdbms/fp/fp/trace/alert_fp.log //进程的启动信息会在alert_fp_log中有显示,我这里直接用了现成启动好的实例,看下他们的进程信息 SQL>set line 9999;
SQL> select addr,pid,spid,username,program from v$process;
ADDR PID SPID USERNAME PROGRAM
---------------- ---------- ------------------------------------------------------------------------ --------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------
00000018E14C2790 1 PSEUDO
000000195142CCE8 2 7234 oracle oracle@rac-12c-2 (PMON)
000000190143EEB8 3 7236 oracle oracle@rac-12c-2 (PSP0)
00000018F145B7C8 4 7241 oracle oracle@rac-12c-2 (VKTM)
00000018E14C3848 5 7245 oracle oracle@rac-12c-2 (GEN0)
000000195142DDA0 6 7247 oracle oracle@rac-12c-2 (DIAG)
000000190143FF70 7 7249 oracle oracle@rac-12c-2 (DBRM)
00000018F145C880 8 7251 oracle oracle@rac-12c-2 (DIA0)
00000018E14C4900 9 7253 oracle oracle@rac-12c-2 (MMAN)
000000195142EE58 10 7255 oracle oracle@rac-12c-2 (DBW0)
0000001901441028 11 7257 oracle oracle@rac-12c-2 (DBW1) ADDR PID SPID USERNAME PROGRAM
---------------- ---------- ------------------------------------------------------------------------ --------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------
00000018F145D938 12 7259 oracle oracle@rac-12c-2 (LGWR)
00000018E14C59B8 13 7261 oracle oracle@rac-12c-2 (CKPT)
000000195142FF10 14 7263 oracle oracle@rac-12c-2 (SMON)
00000019014420E0 15 7265 oracle oracle@rac-12c-2 (RECO)
00000018F145E9F0 16 7267 oracle oracle@rac-12c-2 (MMON)
00000018E14C6A70 17 7269 oracle oracle@rac-12c-2 (MMNL)
0000001951430FC8 18 7271 oracle oracle@rac-12c-2 (D000)
0000001901443198 19 7273 oracle oracle@rac-12c-2 (S000)
00000018F145FAA8 20 109850 oracle oracle@rac-12c-2 (W000)
00000018E14C7B28 21 7322 oracle oracle@rac-12c-2 (QMNC)
0000001951432080 22 7336 oracle oracle@rac-12c-2 (CJQ0) ADDR PID SPID USERNAME PROGRAM
---------------- ---------- ------------------------------------------------------------------------ --------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------
0000001901444250 23 108877 oracle oracle@rac-12c-2 (J000)
00000018F1460B60 24 109927 oracle oracle@rac-12c-2 (J001)
00000018E14C8BE0 25 107377 oracle oracle@rac-12c-2
0000001951433138 26 107379 oracle oracle@rac-12c-2
00000018E14CAD50 33 109950 oracle oracle@rac-12c-2 (TNS V1-V3)
0000001901448530 39 7370 oracle oracle@rac-12c-2 (SMCO)
00000018E14CCEC0 41 7391 oracle oracle@rac-12c-2 (Q000)
0000001951437418 42 7393 oracle oracle@rac-12c-2 (Q001)
30 rows selected.
步骤六、把数据库启动到nomount状态,这种状态才可以创建具体的数据库
为创建数据库,我们之前创建了必要的目录,满足数据文件、控制文件、日志文件等路径需求等,包括有:
1、存放控制文件contorl01.ctl的目录
mkdir /u01/oracle/oradata/fp
2、存放控制文件control02.ctl的目录
mkdir /u01/oracle/fast_recovery_area/fp
3、create log dir 创建存放log的目录
mkdir -p /u01/oracle/admin/fp/{a,dp}dump
idle> startup nomount
ORACLE instance started.
Total System Global Area 313159680 bytes
Fixed Size 2175328 bytes
Variable Size 213913248 bytes
Database Buffers 92274688 bytes
Redo Buffers 4796416 bytes
步骤七、创建数据库(下面是核心语句)
create database fp
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('/u01/oracle/oradata/fp/redo01.log') SIZE 100M,
GROUP 2 ('/u01/oracle/oradata/fp/redo02.log') SIZE 100M,
GROUP 3 ('/u01/oracle/oradata/fp/redo03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET AL32UTF8 ###由于此次需求是要把A库的业务表导出到B库业务表(A库和B库分别在不同的机器上独立运行,所以需要注意字符集设置)
DATAFILE '/u01/oracle/oradata/fp/system01.dbf' SIZE 350M REUSE
AUTOEXTEND ON NEXT 10240K
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u01/oracle/oradata/fp/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE SHP ###业务表空间
DATAFILE '/u01/oracle/oradata/fp/shp01.dbf'
SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/u01/oracle/oradata/fp/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/u01/oracle/oradata/fp/undotbs1.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
//把该语句保存为 createdatabase.sql
//执行:
SQL> @/home/oracle/createdatabase.sql
Database created.
//一旦执行之后,你就会发现当前数据库立即处于open状态了。(oracle启动三阶段 nomount,mount,open)
//执行这个语句也可以直接在控制台上直接执行。
步骤八、创建数据字典等,在控制台直接执行
SQL>@?/rdbms/admin/catalog
SQL>@?/rdbms/admin/catproc
SQL>conn system/oracle
SQL>@?/sqlplus/admin/pupbld
SQL>conn / as sysdba
步骤九、创建两个数据库文件与用户的关系,同时创建用户
SQL> CREATE USER yyshp IDENTIFIED BY yySh12 DEFAULT TABLESPACE SHFP TEMPORARY TABLESPACE temp;
User created. SQL> grant connect,resource,dba to yyshp;
Grant succeeded. SQL> grant create session,create table,unlimited tablespace to yyshp;
Grant succeeded. SQL> grant create table to yyshp;
Grant succeeded. SQL> grant create tablespace to yyshp;
Grant succeeded. SQL> grant create view to yyshp;
Grant succeeded. SQL> grant create session to yyshp;
Grant succeeded. SQL> grant select any table TO yyshp;
Grant succeeded. SQL> grant unlimited tablespace to yyshp;
Grant succeeded.
步骤十、创建普通用户默认表空间
CREATE TABLESPACE users DATAFILE '/u01/app/oracle/oradata/test/user01.dbf' SIZE 100M
AUTOEXTEND ON;
ALTER DATABASE DEFAULT TABLESPACE users;
col file_name for a45
col tablespace_name for a10
步骤十一、需要设置网络配置、连接串
1、修改listener.ora
2、修改tnsnames.ora
//他们两个文件配合使用 oracle@prd:/home/oracle$cat /u01/oracle/product/11.2.0/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/oracle/product/11.2.0/network/admin/tnsnames.ora
# Generated by Oracle configuration tools. //添加fp相关信息
fp=
(DESCRIPTION =
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = fp)
)
) PRD =
(DESCRIPTION =
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prd)
)
) oracle@prd:/home/oracle$cat /u01/oracle/product/11.2.0/network/admin/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = prd)
(SID_NAME = prd)
(ORACLE_HOME=/u01/oracle/product/11.2.0)
)
//添加fp的相关信息
(SID_DESC=
(GLOBAL_DBNAME=fp)
(ORACLE_HOME=/u01/oracle/product/11.2.0)
(SID_NAME=fp)
) MYLISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.121.51.50)(PORT = 1522))
)
)
创建后查看相关的目录和内容
//在数据库中查询
SQL> select file_name,tablespace_name from dba_data_files;
FILE_NAME TABLESPACE_NAME
------------------------------------------------------------------------------------------
/u02/oracle/oradata/fp/system01.dbf SYSTEM
/u02/oracle/oradata/fp/sysaux01.dbf SYSAUX
/u02/oracle/oradata/fp/undotbs1.dbf UNDOTBS1
/u02/oracle/oradata/fp/shp01.dbf SHP //业务表 //进入目录查询
[root@rac-12c-2 ~]# ll /u01/oracle/oradata/fp/
total 3936260
drwxr-xr-x 2 oracle oinstall 10 Dec 2 10:23 archive
-rw-r----- 1 oracle oinstall 9519104 Mar 19 12:30 control01.ctl-rw-r----- 1 oracle oinstall 52436992 Mar 19 01:59 fp2.dbf
-rw-r----- 1 oracle oinstall 52436992 Mar 19 01:59 fp.dbf
-rw-r----- 1 oracle oinstall 52436992 Dec 1 20:37 fp_temp.dbf
-rw-r----- 1 oracle oinstall 104858112 Mar 19 12:29 redo01.log
-rw-r----- 1 oracle oinstall 104858112 Mar 17 02:30 redo02.log
-rw-r----- 1 oracle oinstall 104858112 Mar 18 03:10 redo03.log
-rw-r----- 1 oracle oinstall 524296192 Mar 18 03:15 shp01.dbf
-rw-r----- 1 oracle oinstall 340795392 Mar 19 12:20 sysaux01.dbf
-rw-r----- 1 oracle oinstall 367009792 Mar 19 12:25 system01.dbf
-rw-r----- 1 oracle oinstall 20979712 Mar 19 02:30 temp01.dbf
-rw-r----- 1 oracle oinstall 209723392 Mar 19 12:25 undotbs1.dbf
-rw-r----- 1 oracle oinstall 1073750016 Mar 19 01:59 users01.dbf
-rw-r----- 1 oracle oinstall 1073750016 Mar 19 01:59 users02.dbf
[root@rac-12c-2 ~]# ll /u01/oracle/fast_recovery_area/fp/
total 19040
-rw-r----- 1 oracle oinstall 9519104 Mar 19 12:35 control02.ctl
补充
我这里以数据库是fp,sid=fp2为例,讲解
oracle参数文件
1.初始化参数文件
oracle的初始化参数文件分为spfilefp2.ora(spfile+sid+.ora)、spfile.ora、initfp2.ora(init+sid+.ora)。
2、pfle(Parameter File)静态参数文件:
文本文件,必须通过编辑器修改参数;
修改参数后,需重启实例生效;
pfile 参数文件可以不放在数据库服务器上 ;
命名方式:init + SID.ora 。
3、spfile(System Parameter File)动态参数文件:
二进制文件,无法通过编辑器修改;
Linux 下 strings 可以查看;
必须放在Database Server 指定路径下;
命名方式:spfile + SID.ora 。
4、pfile 和 spfile 可以相互生成:
SQL>create pfile from spfile //通过spfile创建pfile文件
SQL>create pfile='/u01/oracle/product/11.2.0/dbs/spfilefp2.ora' from spfile; //指定文件和路径
SQL>create spfile from pfile//通过pfile创建spfile文件
SQL>create spfile from pfile='/u01/oracle/product/11.2.0/dbs/initfp2.ora' //指定文件和路径
注:使用 spfile 启动后不能在线生成spfile,ORA-32002: 无法创建已由实例使用的SPFILE
可以通过当前内存参数生成 pfile 和 spfile(11g 新特性):
SQL>create pfile from memory;
SQL>create spfile from memory;
5、当oracle启动时,初始化参数文件的加载顺序为:spfilefp2.ora、spfile.ora、initfp2.ora。
有了spfile,pfile一般留做备用,特殊情况也可以使用 pfile 启动,命令如下:
SQL> startup pfile=$ORACLE_HOME/dbs/initfp.ora
oracle 11g手工建数据库过程的更多相关文章
- Oracle 10g AND Oracle 11g手工建库案例--Oracle 11g
Oracle 10g AND Oracle 11g手工建库案例--Oracle 11g 系统环境: 操作系统: RedHat EL6 Oracle: Oracle 10g and Oracle 11 ...
- Oracle 10g AND Oracle 11g手工建库案例--Oracle 10g
Oracle 10g AND Oracle 11g手工建库案例--Oracle 10g 系统环境: 操作系统: RedHat EL6 Oracle: Oracle 10g and Oracle 11 ...
- Oracle 11g 手工建库
假设数据库软件已经安装好,现在没有图形界面无法用dbca安装数据库,那么用手工建库,数据库名为edw 创建目录 [oracle@localhost ~]$ mkdir -p /u01/app/orac ...
- Oracle 11g R2创建数据库之手工建库方式
在之前的博文当中梳理了关于DBCA静默方式创建数据库的过程,本文就手工通过SQL*PLUS客户端采用CREATE DATABASE语句创建数据库.这种建库方式就是完全使用手工SQL语句创建数据库,通常 ...
- CENTOS 6.4 安装oracle 10g,手工建库及升级到10.2.0.5
一. 数据库软件安装 参照官方手册 1.安装rpm包 注这里的yum直接用163的yum yum -y install binutils compat-libstdc++-33 compat-libs ...
- VM虚拟机下在LINUX上安装ORACLE 11G单实例数据库
1.环境及安装前规划:虚拟机及OS如下 环境:VMware Wordstation ACE版 6.0.2 操作系统:OracleLinux-R5-U8-Server-i386-dvd 3.2G ...
- Oracle 11g的安装详细过程
本次采用的电脑为win10 专业版,以下为本人电脑的配置情况: 本人是第一次在win10系统上面进行oracle 11g的安装. 以下为安装步骤: 一.下载软件包 以下为各种oracle安装包的下载网 ...
- Oracle 11g R2创建数据库之DBCA静默方式
通常创建Oracle数据库都是通过DBCA(Database Configuration Assistant)工具完成的,DBCA工具可以通过两种方式完成建库任务,即图形界面方式和静默命令行方式.既然 ...
- Windows Server 2008 R2 64位操作系统安装Oracle 11g 64位数据库,在客户终端上安装Oracle 11g 32位,才能安装P/L Sql Developer并配置
1.下载Oracle 11g R2 for Windows的版本 下载地址: http://www.oracle.com/technetwork/database/enterprise-edition ...
随机推荐
- LGP6825题解
科技的力量!!!!!!我德意志科技天下第一!!! 这是一篇需要一点儿科技的题解,但实际上这个科技我认为甚至算不上科技,太 simple 了. 首先是推柿子: \[\sum_{i=1}^n\sum_{j ...
- matlab语法基础(处理一点数据)
1.声明函数,返回参数data,函数名为simutrack function data=simutrack(x0,y0) 2.%用于标注,注释 3.平方 ^2 4.二维零矩阵 [0 0;0 0] 5. ...
- 6张图为你分析Kafka Producer 消息缓存模型
摘要:发送消息的时候, 当Broker挂掉了,消息体还能写入到消息缓存中吗? 本文分享自华为云社区<图解Kafka Producer 消息缓存模型>,作者:石臻臻的杂货铺. 在阅读本文之前 ...
- linux查看和替换python软连接
linux查看和替换python软连接 查看使用的python版本的路径 # which python 这里是在/usr/bin/python 然后查看链接指向, # ls -l /usr/bin/p ...
- 磁盘管理--如何在VMware上给centos7增加一块磁盘
一. 实验环境 VMware Workstaion + Centos7 二.实验步骤 1.关闭虚拟机,添加磁盘 2.添加硬件向导 硬件类型 你要安装哪类硬件? 点击完成观察到已经成功添加磁盘 3.开启 ...
- Zookeeper 的典型应用场景 ?
Zookeeper 是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员 可以使用它来进行分布式数据的发布和订阅. 通过对 Zookeeper 中丰富的数据节点进行交叉使用,配合 Watch ...
- ACL 权限控制机制 ?
UGO(User/Group/Others) 目前在 Linux/Unix 文件系统中使用,也是使用最广泛的权限控制方式.是一种粗 粒度的文件系统权限控制模式. ACL(Access Control ...
- 使用jquery
在https://jqueryui.com/download/把样式下载下来 然后解压复制到之前的文件夹里面 再到https://jqueryui.com/tabs/#mouseover里面找到一段代 ...
- 学习openstack(七)
相关资料: https://www.cnblogs.com/shhnwangjian/category/942049.html https://www.cnblogs.com/goodcook/cat ...
- MyBatis Plus 2.3 个人笔记-01-代码生成器
sb_mybatis_puls2.3 <?xml version="1.0" encoding="UTF-8"?> <project xmln ...