XX项目数据库初始化环境搭建(含表空间、用户创建,字符集设置、导入导出等)

一、创建用户表空间和用户:
(1)创建表空间
system 身份登陆 PLSQL
收费 BS 系统需要创建两个表空间,一个为存储收费系统数据,一个为存储图纸资料数据,每个表空间都对应一个临时表空间。

--创建永久表空间(2个)
--存储收费系统数据 
create tablespace CHARGE 
datafile 'H:\OracleDB11g\oradata\orcl\CHARGE.dbf'
size 500m autoextend on next 10m maxsize unlimited;
--创建临时表空间
create temporary tablespace CHARGE_TEMP 
tempfile 'H:\OracleDB11g\oradata\orcl\CHARGE_TEMP.dbf'
size 500m autoextend on next 10m maxsize unlimited;


--存储图纸资料数据
create tablespace CHARGE_BASE_DRAWING 
datafile 'H:\OracleDB11g\oradata\orcl\CHARGE_BASE_DRAWING.dbf'
size 500m autoextend on next 10m maxsize unlimited;
--创建临时表空间
create temporary tablespace CHARGE_BASE_DRAWING_TEMP 
tempfile 'H:\OracleDB11g\oradata\orcl\CHARGE_BASE_DRAWING_TEMP.dbf'
size 500m autoextend on next 10m maxsize unlimited;

 


(2)创建用户
创建用户,点击左侧“对象”页签,点击“Users” ,右键“新建” 。
[1]创建用户窗口中的“一般”页签中,输入相应的数据库用户名称,口令,表空间信息,
一般我们将口令设置为同用户名一样, 表空间对应之前创建的表空间名称 (一般表空间名称
同用户名一致) 。 (注意:Oracle11g 数据库的用户是严格区分大小写的,所以在填写用户名
和口令时要意大小写) 。概要文件选:default;
[2]点击“角色权限”页签,赋予三个角色权限,分别为 resourse、connect、dba 权限(选择后默认已经勾上)。
[3]点击“系统权限”页签,赋予无线表空间权限 unlimited tablespace,点击“应用” ,此时
   完成收费系统数据库用户名的创建。

 

 

--对应的SQL如下:
-- Create the user 
create user CHARGE
  identified by CHARGE
  default tablespace CHARGE
  temporary tablespace CHARGE_TEMP
  profile DEFAULT;
-- Grant/Revoke role privileges 
grant connect to CHARGE;
grant dba to CHARGE; --区别grant sysdba to CHARGE;sysdba是权限,dba是角色,只有sysdba权限的才可以在plsql登陆的时候选择as sysdba登陆
grant resource to CHARGE;
-- Grant/Revoke system privileges 
grant unlimited tablespace to CHARGE with admin option;	

(3)接下来进行图纸资料数据库用户的创建,创建方式同收费数据用户。配置分别如下图所

 

示。

 

-- Create the user 
create user CHARGE_BASE_DRAWING
  identified by CHARGE_BASE_DRAWING
  default tablespace CHARGE_BASE_DRAWING
  temporary tablespace CHARGE_BASE_DRAWING_TEMP
  profile DEFAULT;
-- Grant/Revoke role privileges 
grant connect to CHARGE_BASE_DRAWING;
grant dba to CHARGE_BASE_DRAWING;
grant resource to CHARGE_BASE_DRAWING;
-- Grant/Revoke system privileges 
grant unlimited tablespace to CHARGE_BASE_DRAWING with admin option;


二、创建完用户后,导入文件:
现在两个库里无表结构、数据,下一步我们开始讲收费系统数据和图纸资料数据的数据
库导入进去。数据库文件以.dmp 为后缀,导入数据库的方式我们一般采用命令提示符语句
导入或者借助 PLSQL 工具导入。 
(1)修改数据库字符集:
当我们直接进行数据库导入时,发现会有部分表无法正常导入,导入过程会报错,在导入数
据库前,我们需要进行 Oracle 数据库配置,转化字符集为 ZHS16GBK 
点击计算机中的开始→运行,cmd 进入,命令提示符界面 
命令:

 

c:\users\Administrator>sqlplus /nolog
SQL>conn /as sysdba
SQL>shutdown immediate;
   >startup mount
   >alter system enable restricted session;
   >alter system set job_queue_processes=0;
   >alter system set aq_tm_processes=0;
   >alter database open;
   >alter database character set internal_use ZHS16GBK;
   >shutdown immediate;
   >startup; (重开正常oracle)
   完成;
   查询字符集:
   >select userenv('language') from dual;

 
(2)导入:
方法一:PLSQL 工具导入 
[1]首先以收费数据用户的身份登陆(首次登陆时报错:错误信息:ORA-01033: ORACLE initialization or shutdown in progress,
解决办法是再执行一次命令:alter database open;),先导入收费数据。 
[2]登陆后,点击“工具”→“导入表” 
[3]选择本地.dmp 后缀的收费数据库文件,点击“导入按钮” 。
方法二,通过 SQL 命令导入。 
[1]点击计算机中的开始→运行,cmd 进入,命令提示符界面,输入导入命令。 
导入语句格式:IMP 用户名/口令@数据库服务名 
仅导入数据默认 no 
导入文件:输入本地数据库DMP文件存放路径 
输入插入缓存区大小:默认
只列出导入文件的内容:默认no
由于对象已存在,忽略创建错误:默认no
导入权限:默认yes;
导入表数据,默认 yes 
导入整个导出文件,默认no,输入导入的数据库用户的名称,回车后,
回车后出现“输入表(T)或分区的名称,如果完成: ”字样,点击回车
数据库开始导入,此时可看到
表数据的导入进度。  
c:\users\Administrator>imp CHARGE/CHARGE@orcl  回车
仅导入数据<yes/no>:no >  回车
.....
.....
[2]提示成功终止导入,收费数据导入完成(注:警告可忽略) 
[3]图纸资料数据的导入同收费数据导入,此过程不再一一赘述。 

(3)至此完成了两个数据库的导入,导入完成后需将两个数据库的 dba 权限去掉,防止恶意
修改数据库结构。 
[1]打开 PLSQL,对象中 Users 找到相应用户,右键“编辑” 。 
[2]点击“角色权限”页签,选中 dba 权限行,点击右侧的“—”号,进行删除
  或使用SQL:  

 

-- Grant/Revoke role privileges 
revoke DBA from CHARGE_DXRD;

[3]进行[2]操作后,点击“应用”后, “系统权限”页签中的无限表空间默认是未勾选的,如果在这时
点击应用保存, 操作收费系统数据量大的情况下会影响正常使用, 所以每次进行编辑用户后,
需要将“unlimited tablespace”权限重新勾选,应用。 

 

-- Grant/Revoke system privileges 
grant unlimited tablespace to CHARGE_DXRD with admin option;

三、安装jdk和Tomcat


四、部署项目
(1)接下来我们将系统项目文件拷贝到 tomcat 服务项目文件夹下。 
D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps
(2)对系统进行相应数据库和网络连接配置。 
项目下的\WEB-INF\classes 中三个配置文件:config、log4j、proxool。
[1]config 文件以记事本格式打开,编辑下两图中四行信息:
-->DRAWING 开头的为配置图纸资料的数据源、用户名和口令,
-->quiee 开头为报表的数据源路径。此处因我们安装的是服务器,所有库和报表都安装在本地服务器上, 
  所以数据源中的 ip 为本地 127.0.0.1 或 localhost,冒号后面的 1521 和 6001 为程序端口号,
  再后面的 orcl 为本地数据库的服务名。
[2]记事本格式打开 log4j 文件,设置日志文档的路径,此处设置为 D 盘(修改的话一共有两处),
  此时需要在 D 盘根目录下相应的创建一个文件夹,命名为 log4j;
[3]记事本格式打开 proxool,设置主程序的启动数据源(如:CHARGE)和用户名口令(一共三处)。


五、润乾报表工具安装与经营收费管理系统报表的部署
(1)双击润乾报表安装文件。 
(2)语言选择 Chinese,点击“OK” 。
(3)下一步->许可证协议,点击“我接受”->选择组件界面,默认,点击“下一步” ->选择安装路径,除 C 盘硬盘存储量最大的盘符,
此处我选择 D 盘,其余路径保持不动,点击“安装” ->提示安装完成,点击“完成” 。  
(4)安装完成后,桌面即生成润乾报表设计器图标,双击打开,进入报表设计器界面。 
首先先进行设计器的授权,点击“配置”→“选项” ->选择“文件”页签,选择授权文件名称后面的浏览按钮
(5)选择本地的授权文件 (.lic 后缀) , 此处选择 designerYV4.0.lic 结尾的文件, 点击 “打开” 
(6)回到授权页面,点击“确定” 。
(7)回到设计器主界面, 发现标题栏中的单位名称为 【哈伦能源】 , 需要进行服务器的授权。 
点击“本地应用”→“发布”→“设置服务器授权”->点击授权行后的“预览”->选择本地授权文件 Windows.lic 结尾的授权文件,点击“确定” 。
    (8)重新启动报表工具,会发现标题中的单位名称已变更,授权完成
(9)接下来我们来配置报表工具的数据库连接池 
    [1]润乾报表预设了两个数据源用来学习报表工具使用,我们点击“新建” 。
[2]选择“关系数据库” ,点击“确定” 。 
[3]填写数据源参数,包含数据源名称,用户名、密码、数据库类型(Oracle)、字符集(默认GBK即可)、
   驱动:oracle.jdbc.driver.OracleDriver
   url(jdbc:oracle:thin:@127.0.0.1:1521:ORCL) 等,填写
完确认无误后点击“确定” 。
[4]数据源列表中生成了刚刚建立的数据源,此时为断开状态,选中要连接的数据源,点击
“连接” 。
[5]片刻后,数据源变成紫色,并提示“已连接” ,数据源连接成功,关闭数据源配置窗口
[6] 将收费系统的预设报表文件拷贝到润乾报表相应运行路径(H:\programsetup2016\RQreport\webapps\demo\reportFiles )下,
      报表文件以 “.raq” 后缀(所有)。 
[7]报表工具到此配置完成,最后一步启动报表服务,收费系统即可访问报表。 
点击报表工具右上角的黄色小猫,当变成红色即可。 (为保证报表正常运行,润乾报表设计
器不能关系,可最小化到状态栏中) 。
六、启动Tomcat下的startup脚本,打开浏览器输入访问路径进行访问。

七、删除用户及表空间步骤:

 

--删除用户
drop user CHARGE cascade ;
--删除表空间前先将其下线在执行删除操作(临时表空间不需要执行下线操作)
alter database datafile  'H:\OracleDB11g\oradata\orcl\CHARGE.DBF' offline drop;
--删除表空间及其数据文件(此步执行删除dbf文件操作)
drop tablespace CHARGE including contents and datafiles cascade constraints ;
--删除临时表空间及其数据文件
drop tablespace CHARGE_TEMP  including contents and datafiles cascade constraints ;


八、解决误删数据库dbf文件后,数据库未打开的问题:
补充:
执行

 

drop user username cascade ;
drop tablespace tablespacename including contents and datafiles cascade constraints ;

两句后,然后停止OracleService服务,接着手动删除对应表空间的dbf文件,再次登录数据库的时候会报:
数据库未打开  的问题,解决办法如下:
(1)cmd窗口
(2)登录:sqlplus  "/as sysdba"   

 

SQL> shutdown immediate
		ORA-01109: 数据库未打开

		已经卸载数据库。
		ORACLE 例程已经关闭。
		SQL> startup
		ORACLE 例程已经启动。

		Total System Global Area 1071333376 bytes
		Fixed Size                  1375792 bytes
		Variable Size             662700496 bytes
		Database Buffers          402653184 bytes
		Redo Buffers                4603904 bytes
		数据库装载完毕。
		ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
		ORA-01110: 数据文件 6: 'H:\ORACLEDB11G\ORADATA\ORCL\CHARGE.DBF'

		SQL> recover datafile   'H:\ORACLEDB11G\ORADATA\ORCL\CHARGE.DBF'
		ORA-00283: 恢复会话因错误而取消
		ORA-01110: 数据文件 6: 'H:\ORACLEDB11G\ORADATA\ORCL\CHARGE.DBF'
		ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
		ORA-01110: 数据文件 6: 'H:\ORACLEDB11G\ORADATA\ORCL\CHARGE.DBF'

		SQL> select name from v$datafile;


		NAME
		--------------------------------------------------------------------------------
		H:\ORACLEDB11G\ORADATA\ORCL\SYSTEM01.DBF
		H:\ORACLEDB11G\ORADATA\ORCL\SYSAUX01.DBF
		H:\ORACLEDB11G\ORADATA\ORCL\UNDOTBS01.DBF
		H:\ORACLEDB11G\ORADATA\ORCL\USERS01.DBF
		H:\ORACLEDB11G\ORADATA\ORCL\EXAMPLE01.DBF
		H:\ORACLEDB11G\ORADATA\ORCL\CHARGE.DBF
		H:\ORACLEDB11G\ORADATA\ORCL\CHARGE_BASE_DRAWING.DBF
		H:\ORACLEDB11G\ORADATA\ORCL\CHARGE_DXRD.DBF
		H:\ORACLEDB11G\ORADATA\ORCL\CHARGE_SF.DBF
		H:\ORACLEDB11G\ORADATA\ORCL\CHARGE_BOHU.DBF
		H:\ORACLEDB11G\ORADATA\ORCL\CHARGE_HEJING.DBF


		NAME
		--------------------------------------------------------------------------------
		H:\ORACLEDB11G\ORADATA\ORCL\CHARGE_KELRELI.DBF
		H:\ORACLEDB11G\ORADATA\ORCL\CHARGE_QDRD.DBF


		已选择13行。


		SQL> alter   database  datafile  'H:\ORACLEDB11G\ORADATA\ORCL\CHARGE.DBF' OFFLINE DROP;


		数据库已更改。


		SQL>
		SQL> alter   database  datafile  'H:\ORACLEDB11G\ORADATA\ORCL\CHARGE_SF.DBF' OFFLINE DROP;


		数据库已更改。


		SQL> shutdown immediate
		ORA-01109: 数据库未打开




		已经卸载数据库。
		ORACLE 例程已经关闭。
		SQL> startup
		ORACLE 例程已经启动。


		Total System Global Area 1071333376 bytes
		Fixed Size                  1375792 bytes
		Variable Size             662700496 bytes
		Database Buffers          402653184 bytes
		Redo Buffers                4603904 bytes
		数据库装载完毕。
		数据库已经打开。
		SQL>

九、数据库导入导出:

 

exp charge_qddy/charge@ORCL file=d:/charge.dmp
imp charge_qddy/charge@ORCL file=d:/charge.dmp full=y

   导出的库有空表的时候,可能会忽略而不导出,则执行:
  

 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 

   然后把查询的结果复制出来执行一遍,然后再导出数据库。

OK,结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值