Oracle 忘记密码并建库

问题起源:公司一个同事有一个很急的 BUG 需要调,但是服务器上的数据库(Oracle)非常不稳定,总是断,所以被逼无奈,打算复制一份到本地,并且电脑是老电脑,也并不知道装没装 Oracle。以下是全部检查以及解决步骤:

1、检查电脑是否安装 Oracle:

任务管理器 --> 进程:检查是否有 oracle.exe?若有,则有 Oracle,若无,则无 Oracle。

(其实也可以通过 dos 进行连接什么的,但是假如没装 Oracle 的话,sqlplus、conn...命令都不识别,服务倒是可以当做一个参考。)

2、不知道 Oracle 账号密码:

    win+R 进入 dos:

  1. CONN SYS/SYS_WORD AS SYSDBA;
  2. ALTER USER SYSTEM IDENTIFIED BY "SYSTEM"

3、创建表空间:

create tablespace FAMILYDOCTOR datafile 'F:\app\Administrator\oradata\orcl\FAMILYDOCTOR.DBF' size 100m;

4、创建用户:

create user base identified by base default tablespace FAMILYDOCTOR;

5、赋予用户权限:

grant connect,resource to base;

6、导出数据

暂时用的是 navicat 工具导出数据,实际上是导出纯数据,即一个 .sql 文件。

用 navicat 的一个好处就是不用登陆服务器,可以直接在本地电脑直接导出数据。

7、导入数据

点击 "转储 SQL 文件" 选项上面的 "运行 SQL 文件" 选项。

(注意:导出的 sql 文件里面全是服务器的用户名.表名,导入的时候需要注意用户名)

如果你不想和服务器(导出的 oracle 的用户)用户名一样,则需要修改导出的 .sql 文件里面的用户名,再进行导入

(而且要注意是否有表空间,是否指定给这个用户,否则也会导致写入失败)

 

导出需注意 : 一般都是  结构和数据

导入需注意 :

    1.选择运行 SQL 文件 ( 上面 7 画红框框的画错了 )

    2.要注意选择  你要在哪个库上运行你的 SQL 文件

    3.进行导入可以不进行删表或者清空数据, 因为 SQL 文件在导出时会自动在最上面生成删除这个表 ( 或者库 ) 的 sql

       说白了, 就是他会自己先删, 再导入

    4.特别注意导出的 .sql 文件, 里面的表明都是 xx.表名, 数据库不同, 格式不同

       Oracle 举例, 导出的格式为 "账号名"."表名"

       SqlServer 好像是 [权限].[表名], 记得不是很清楚了

       如果是本地搭建数据库, 强烈建议和正式环境数据库进行统一, 所有的方面, 包括账号, 密码, 库(命名空间)名, 权限, 表名......

 

 

可能遇到的问题:

第二步:

1、sqlplus 或者 conn 命令不识别:

    解决:系统变量path后面加上;F:\app\Administrator\product\10.1.0\db_1\bin

    (此路径为 Oracle 安装路径,并且前面必须加上 ";”,以此来分隔前面的环境变量)

    (Oracle 安装路径可在我的电脑搜索 product)

    Oracle 的目录结构

按照理论来讲,上面的表空间路径和环境变量的路径,前面都是指向这个文件夹,到了这个文件夹之后才分叉,一个是指向 oradata 文件夹,一个是指向 product 文件夹

2、命令不执行,出现12345列表序号:

    解决:dos 里面的 sql 结尾主要加 ";”,证明是命令语句并且结束。

第三步:

    sql 解析:创建 表空间 表空间名 数据文件 路径 大小

第四步:

     sql 解析:创建 用户 用户名 挂上 表空间 表空间名

第五步:

     赋予 连接,开发权限 给 用户名

 

 

 

 

 

有兴趣的可以到 oracle 数据库环境里面写两条 sql 查询一下看看:

1、select * from role_sys_privs where role like 'CONNECT'; --查询 CONNECT 权限

2、select * from role_sys_privs where role like 'RESOURCE'; --查询 RESOURCE 权限

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值