包子的 oracle 学习笔记---创建数据库
2015-08-25 19:34
597 查看
ORACLE学习
目录
ORACLE学习目录
创建数据库
第一步
第二步
第三步
创建表空间 创建用户
导出导入数据库
删除用户以及对应所有数据
遇到锁表的处理办法
创建数据库
第一步
创建数据库之前需要先安装oracle服务端.完后使用
Database Configuration Assistant 来创建数据库即可.
这里需要注意的是字符集. 这个很重要因为不能修改要想好应该用什么.
第二步
使用Net Configuration Assistant 来配置监听与数据库命名
第三步
如果想在本地使用 PL/SQL Developer 连接 oracle 需要先在本地安装 oracle 的小型客户端版本.完后配置
D:\app\Administrator\product\11.2.0\client_1\network\admin\tnsnames.ora 文件.
随意起的名字用于显示 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 数据库链接地址.[可以是服务器机器名])(PORT = 1521[端口号.一般默认都是1521])) ) (CONNECT_DATA = (SERVICE_NAME = 数据库名字) ) )
创建表空间 创建用户
使用PL/SQL登录管理员权限账户.使用以下语句在sql执行里创建表空间
--表空间(表空间名称:AAAAA_SP,表空间文件:tablespace) CREATE TABLESPACE GJXFJ_SP DATAFILE 'D:\AAAAA\tablespace' size 100M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; --索引表空间(表空间索引名称:AAAAA_Index,表空间索引文件:tablespace_Index) CREATE TABLESPACE GJXFJ_Index DATAFILE 'D:\AAAAA\tablespace_Index' size 100M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
对于表空间的后续操作.
--对哪个表空间追加物理地址.(因为限制.每个表空间文件最大只能32GB) alter tablespace AAAAA_SP add datafile 'D:\AAAAA\tablespace1' size 100M; --将表空间设置为自动增长. alter database datafile 'D:\AAAAA\tablespace' autoextend on[off 不自动]; --查询指定表空间物理地址数量以及是否自动增长 select tablespace_name,file_name,autoextensible from dba_data_files where tablespace_name = 'AAAAA_SP'; --修改表空间大小(在不自动增长时设置合适大小) ALTER DATABASE DATAFILE 'D:\AAAAA\tablespace' AUTOEXTEND ON NEXT 200M MAXSIZE UNLIMITED; --删除表空间以及其中所有内容 drop tablespace AAAAA_SP including contents and datafiles;
创建用户
--2.建用户 create user 用户名 identified by 密码 default tablespace AAAAA_SP[表空间名称]; --为已存在的用户追加表空间 alter user 用户名 default tablespace 表空间名称;
给用户赋予权限
--3.赋权 根据需要赋予权限 grant connect,resource to 用户名; grant create any sequence to 用户名; grant create any table to 用户名; grant delete any table to 用户名; grant insert any table to 用户名; grant select any table to 用户名; grant unlimited tablespace to 用户名; grant execute any procedure to 用户名; grant update any table to 用户名; grant create any view to 用户名; grant resource to 用户名; grant dba to 用户名;
这个是做什么用的我也不知道.不过我每次都创建.
create or replace directory expdir as 'D:/AAAAA/dmp'; grant read,write on directory expdir to public;
查询创建的数据结果
select * from dba_directories;
导出导入数据库
CMD执行命令用什么导出 就用什么导入. 并且注意 导出导入数据库字符集 以及版本号
--导出 exp 用户名/密码@127.0.0.1\数据库名 file=E:\201508212005.dmp log=E:\201508212005.log full=y expdp 用户名/密码@127.0.0.1\数据库名 dumpfile=201505252120.DMP FULL=y;
--导入 imp 用户名/密码@127.0.0.1\数据库名 file=E:\201508131620.DMP log=E:\201508131620.log full=y Impdp 用户名/密码@127.0.0.1\数据库名 file=201508131620.DMP full=y
使用PL/SQL工具导入导出.
工具–导出用户对象. 可以导出用户下所有表.事物.存储.序列.索引等.但是无法导出数据.
工具–导出表. 其中3中导出方式均可以导出数据.
但是 SQL 与 PL/SQL方式无法导出 二进制字段的表 比如带有BLOB CLOB等.
删除用户以及对应所有数据.
--删除用户以及用户下的所有数据 drop user 用户名 cascade[cascade为删除用户下所有数据]; --查询当前使用进程.可以杀掉这个进程 select username,sid,serial# from v$session alter system kill SESSION 'sid,serial' immediate [immediate 为可选强制杀进程]
遇到锁表的处理办法
查询锁表的原因.--查询执行锁表错误的原因SQL' SELECT L.SESSION_ID SID, S.SERIAL#, L.LOCKED_MODE, L.ORACLE_USERNAME, S.USER#, L.OS_USER_NAME, S.MACHINE, S.TERMINAL, A.SQL_TEXT, A.ACTION FROM V$SQLAREA A, V$SESSION S, V$LOCKED_OBJECT L WHERE L.SESSION_ID = S.SID AND S.PREV_SQL_ADDR = A.ADDRESS ORDER BY SID, S.SERIAL#;
查询锁表的用户
--查询进程ID' SELECT L.SESSION_ID SID, S.SERIAL#, L.LOCKED_MODE, L.ORACLE_USERNAME, L.OS_USER_NAME, S.MACHINE, S.TERMINAL, O.OBJECT_NAME, S.LOGON_TIME FROM V$LOCKED_OBJECT L, ALL_OBJECTS O, V$SESSION S WHERE L.OBJECT_ID = O.OBJECT_ID AND L.SESSION_ID = S.SID ORDER BY SID, S.SERIAL#;
查询锁表进程,并且生成杀掉语句
--查询锁表进程 并且生成杀掉进程语句 SELECT 'ALTER SYSTEM KILL SESSION ''' || SID || ',' || SERIAL# || ''';' FROM ( SELECT DISTINCT A.SID, A.SERIAL#, STATUS, MACHINE, LOCKWAIT, LOGON_TIME FROM V$SESSION A, V$LOCKED_OBJECT B WHERE (A.STATUS = 'ACTIVE' OR A.STATUS = 'INACTIVE') AND A.SID = B.SESSION_ID --AND B.ORACLE_USERNAME='用户名'--用户名 --AND B.OS_USER_NAME = '机器名字'--电脑的机器名称 )
需要学习的东西真的还有很多很多啊.T.T
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 从源码安装Mysql/Percona 5.5
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- 数据库链接字符串查询网站
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- Oracle 10g R2不能使用EM的问题
- 表空间操作
- PreparedStatement中in子句的处理
- 在 AppImage、Flathub 和 Snapcraft 平台上搜索 Linux 应用
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- oracle sql日期比较
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- DB2实例管理
- DB2实例管理
- OS block size和Oracle block size,查找OS Blocksize的方法
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- oracle中创建数据库和表空间的几点总结