oracle学习使用--oracle安装都安装为企业版
来源:互联网 发布:ff14人族捏脸数据分享 编辑:程序博客网 时间:2024/05/29 16:41
oracle启动必须启动的服务:Oracle 11g服务详细介绍及哪些服务是必须开启的?
-- oracle临时学习任务:
-- 1:创建表空间;创建用户;分配用户到表空间 http://blog.itpub.net/750660/viewspace-1114985/ 授权:http://www.cnblogs.com/xmaomao/p/3273102.html
create tablespace CBL_OA_DATAlogging datafile 'D:\CBL_OA_DATA2.dbf' --D:\app\Administrator\oradata\orcl\CBL_OA_DATA2.dbfsize 50mautoextend onnext 50m maxsize 20480mextent management local;
ALTER USER CBL_OA DEFAULT TABLESPACE CBL_OA_DATA;
修改普通用的密码:
alter user userName identified by passWord;
-- 2:删除所有的表:通过删除表空间实现 http://blog.csdn.net/oscar999/article/details/7468153 删除用户表空间
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;
oracle11g之后密码默认180天有效,这里进行修改
SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
-- 3:查看数据库版本
要dba用户才行
select * from v$instance;
如果要查看自己是专业版本还是企业版本还是个人版本,可以直接登录sqlplus的时候可以看到,版本要一直,否则导入导出可能出现问题;
oracle如何卸载干净,找到Universal Installer进行卸载; 要停止所有的服务;
注册表可以不删除
-- 4:oracle不能使用系统关键字,使用关键字都要用"",加了双引号之后是严格区分大小的
DROP TABLE "table"; SELECT * FROM "table";
数据库列名使用了关键字怎么办?
系统错误码:
ORA-28000:账号被锁定;
ORA-01017: invalid username/password; logon denied 错误; 账号和密码错误,重新修改;
ORA-00988: 口令缺失或无效,密码或格式无效;
-- 5 :系统用户查看所有的用户:
select username,password from dba_users; -- 查看所有的用户 alter USER CBL_OA IDENTIFIED BY W1Q2W3E4R5T88cbl; -- 修改密码;注意密码不用带有引号;commit;如果报错:ORA-00988: 口令缺失或无效,就是密码格式无效,不能包含特殊字符;账号解锁:ALTER USER CBL_OA ACCOUNT UNLOCK;
-- 6: oracle 中的 VARCHAR,VARCHAR2,NVARCHAR2如何取舍 varchar 已经不建议使用了 varchar2(100):只能存100个字符或者50个汉字 NVARCHAR2: 可以存储100汉字或者100个字符 平时就用NVARCHAR2
nvarchar2最多能存2000个字符; varchar2最多能存4000个字符; 超过4000个字符就要用Blob, Clob了? Clob专门存储大文本的;Blob专门存储二进制的其他文件;
ORACLE 日期函数,date和timestamp ,timestamp是data的升级版本
Oracle 字符串转换TIMESTAMP类型或Date类型
--7: 系统管理的sql语句
1、查询数据库中的表空间名称
1)查询所有表空间
select tablespace_name from dba_tablespaces;
select tablespace_name from user_tablespaces;2)查询使用过的表空间
select distinct tablespace_name from dba_all_tables;
select distinct tablespace_name from user_all_tables;
2、查询表空间中所有表的名称
select table_name from dba_all_tables where tablespace_name = tablespacename
3、查询系统用户
select * from all_users
select * from dba_users
4、查看当前连接用户
select * from v$session
5、查看当前用户权限
select * from session_privs
6、查看所有的函数和存储过程
select * from user_source
其中TYPE包括:PROCEDURE、FUNCTION
7、查看表空间使用情况
select a.file_id "FileNo",
a.tablespace_name "表空间",
a.bytes "Bytes",
a.bytes - sum(nvl(b.bytes, 0)) "已用",
sum(nvl(b.bytes, 0)) "空闲",
sum(nvl(b.bytes, 0)) / a.bytes * 100 "空闲百分率"
from dba_data_files a, dba_free_space b
where a.file_id = b.file_id(+)
group by a.tablespace_name, a.file_id, a.bytes
order by a.tablespace_name;
HTTP
http://www.cnblogs.com/ITGIS/articles/1763993.html
8:解决ORA-00904: invalid identifier标识符无效
出现这种问题,如果是创建表基本上是创建表的时候使用了,系统关键字,可以查看:
Oracle 关键字(保留字) 大全
包括,uid;type; types
Mysql 关键字-保留字
10 : oracle 日期比较
END_TIME < sysdateto_date(CREATE_TIME,'YYYY-MM-DD HH24:MI:SS') < sysdate
10: oracle如何实现自增
oracle 字段自增 两段代码搞定
11:关于分页,SQLServer中的top、MySql中的limit、Oracle中的rownum的区别
9:解决ORA-2516: 数据库连接池占用满了
监听程序找不到符合协议堆栈要求的可用处理程'错误,要解决该问题首先查看一下数据库现有的进程数,是否已经达到参数processes的大小。
数据库连接池问题:
ORA-12516
oracle默认数据库连接数150个
Listener refused the connection with the following error 错误解
-- 正在使用数据库不要随便停掉,数据库连接占用,可能要半个小时才能关闭掉,或者半天select count(*) from v$process ; -- 查看数据库当前的连接数量select value from v$parameter where name = 'processes'; -- 查看允许的最大连接数select username,count(username) from v$session where username is not null group by username; -- 查看个个用户占用的连接数Select count(*) from v$session where status='ACTIVE'; -- 查看并发的连接数select * from v$session where username is not null; -- 详细查看用户的连接的情况-- 杀死用户下面的sid,serival,usernameselect sid,serial#,username from V$session where username like 'SAFETY';
-- 关闭tomcat 数据库连接池归还的也很慢--alter system kill session '7,47878' immediate; -- 立即杀死
-- 正在使用数据库不要随便停掉,数据库连接占用,可能要半个小时才能关闭掉,或者半天select count(*) from v$process ; -- 查看数据库当前的连接数量select value from v$parameter where name = 'processes'; -- 查看允许的最大连接数select username,count(username) from v$session where username is not null group by username; -- 查看个个用户占用的连接数Select count(*) from v$session where status='ACTIVE'; -- 查看并发的连接数select * from v$session where username is not null; -- 详细查看用户的连接的情况-- 杀死用户下面的sid,serival,usernameselect sid,serial#,username from V$session where username like 'SAFETY';
-- 关闭tomcat 数据库连接池归还的也很慢--alter system kill session '7,47878' immediate; -- 立即杀死
决
10:plsql的问题设置访问数据库地址的问题
查询PLSQL Developer\instantclient_11_2\tnsnames.ora 找到ip地址进行修改,如下例子:
11:Oracle导入导出的问题
oracle数据的导入导出是常见的问题,一般有两种方案,第一个使用plsql带有的工具,第二使用imp或者exp原始命令,推荐使用第二种,第一种本质上用的还是oracle的命令。
参见:
Oracle 导出、导入某用户所有数据(包括表、视图、存储过程...)
下面演示基于用户的导入导出
创建用户并且授权— Create the user create user HR2 identified by HR default tablespace USERS temporary tablespace TEMP profile DEFAULT;— Grant/Revoke role privileges grant resource to HR2;grant connect to HR2;— Grant/Revoke system privileges grant alter session to HR2;grant create database link to HR2;grant create sequence to HR2;grant create session to HR2;grant create synonym to HR2;grant create view to HR2;grant unlimited tablespace to HR2;
导出和导入示例
exp 'sys/system12e4Q@orcl as sysdba' owner=HR file='%USERPROFILE%\Desktop\hr.dmp' ignore=y 这两个句都是cmd命令不是plsql命令,最后不要加; imp 'sys/system12e4Q@ORCL as sysdba' fromuser = hr touser = hr2 file='%USERPROFILE%\Desktop\hr.dmp' ignore=y
、导入dmp文件报错:IMP-00038 和IMP-00000,如果报错则导出用的expdp,现在导入也用impdp
impdp导入dmp文件ORA-39088: 文件名不能包含路径说明ORA-39001: 参数值无效ORA-39000: 转储文件说明错误
---------------------------------------------------------------
12 : ORACLE 使用最新的expdp和impdb进行导入导出
ORA-39001: 参数值无效
ORA-39000: 转储文件说明错误
ORA-39088: 文件名不能包含路径说明
通过文章:http://blog.csdn.net/zengmingen/article/details/51657900
知道impdp命令只可导入expdp导出的dmp文件。expdp导出的时候,需要创建 DIRECTORY
导出什么表空间,导入也要什么表空间。
导出什么用户,导入也要什么用户。
如果没有要新建。
expdp / impdp 用法详解,可以按照用户、表空间、数据库、表来导入导出
一 关于expdp和impdp 使用EXPDP和IMPDP时应该注意的事项:
EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。
expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如:
expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
create directory dpdata1 as 'd:\test\dump';
二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;
三、给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。
grant read,write on directory dpdata1 to scott;
四、导出数据
1)按用户导
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
解释:导出orcl这个是oracle实例下面的scott用户,导出后放到一个oracle创建并管理的逻辑目录dpdata1里面的expdb.dmp里面;创建虚目录见上面的方法。
2)并行进程parallel
expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;
4)按查询条件导
expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空间导
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;
五、还原数据
1)导到指定用户下
impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;
2)改变表的owner
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加数据
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION
记着还有给用户授予指定目录的读写权限,否则报错:EXPDP和IMPDP使用ORA-39087目录名无效
ORA-00439未启用的功能:DEFERRED_SEGMENT_CREATION,oracle导入导出的使用使用的版本不一致,专业版、标准版导致的;
oracle 39165 :未找到方案 safety ; 可能是导入导出不是一个用户
-- 查询dba所有的虚目录或者说逻辑目录select * from dba_directories;-- 自己创建一个逻辑目录create directory dmp_dir as 'c:\oracle\dazer\my_back_dir';-- 给scott用户授权访问逻辑目录的权限GRANT READ,WRITE ON DIRECTORY DMP_DIR to scott;
升级版导入导出,注意逻辑目录要提前查看;
— 创建表空间,如果导出的数据库在一个单独的表空间,要创建 create tablespace CBL_OA_TEST_DATA logging datafile 'C:\oracle\dazer\oradata\mydbf\CBL_OA_TEST_DATA.dbf' —D:\app\Administrator\oradata\orcl\CBL_OA_DATA2.dbf size 50m autoextend on next 50m maxsize 20480m GRANT READ,WRITE ON DIRECTORY DMP_DIR to oatest; — 授予oatest用户访问逻辑路径dmp_dir的读写权限;
expdp scott/tiger@orcl directory=dmp_dir dumpfile=myscott.dmp schemas=scott — 最后不要加分号;导出scott用户到逻辑目录dmp_dir下面的myscott.dmp文件里面impdp oatest/oatest schemas=oatest directory=dmp_dir dumpfile=OATEST20171011-10.DMP —最后不要加分号;导入dmp_dir逻辑路径下面的dmp文件到用户oatest里面;
13:oracle数据库备份与恢复的几种方式
根据oracle数据库的特点和提供的工具,主要方法有以下几种方法:
- 利用逻辑备份使用import工具丢失数据的表
- 利用物理备份来通过还原数据文件并进行不完全恢复
- 利用dbms_logmnr包从redo log文件中恢复
- 利用flashback特性恢复数据
14: Oracle-本地连接没问题,远程连接有问题解决方案
15: Oracle 导入导出 的 三种方式
使用plsql导入导出
16:ORACLE中SID和SERVICE_NAME的区别
select INSTANCE_NAME from v$instance; -- 查询oralce的实例名称,结果:zjscbldb2select name from v$database; -- 查询oracle数据库的名称,一个oracle只有一个数据库,但是可能有多个实例,比如 oracle rac.;结果:ZJSCBLDBJDBC连接数据库使用SERVICE NAME、SID以及TNSName不同写法
jdbc连接数据库使用sid和service_name的区别 ?
数据库名称叫做ZJSCBLDB,实例名称是两个zjscbldb1,zjscbldb2
JDBC连接Oracle RAC的连接串配置
Oracle 删除重复数据只留一条
--3.查出锁定表的sid, serial#,os_user_name, machine_name, terminal,锁的type,modeSELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,s.terminal, s.logon_time, l.typeFROM v$session s, v$lock lWHERE s.sid = l.sidAND s.username IS NOT NULLORDER BY sid;这个语句将查找到数据库中所有的DML语句产生的锁,还可以发现,任何DML语句其实产生了两个锁,一个是表锁,一个是行锁。--杀掉进程 sid,serial#alter system kill session'210,11562';
- oracle学习使用--oracle安装都安装为企业版
- 【oracle学习】oracle安装
- oracle 10g 在 redhat 5.1 企业版 安装过程
- ORACLE 10g for RedHat Linux 5(企业版)安装
- ubuntu 8.10 安装Oracle 10G 企业版综合指南
- 在CentOS5.6下安装Oracle 10g企业版
- oracle安装版本的区别(标准版,企业版那种版本)
- oracle学习1-安装
- Oracle安装与学习
- oracle安装学习
- Oracle学习:不用安装Oracle Client如何使用PLSQL Developer
- oracle安装使用记录
- Delphi5 企业版使用BDE访问 Oracle方法
- ORACLE学习笔记(1)--ORACLE安装
- Oracle基础学习1--Oracle安装
- 不安装oracle,使用plsql连接oracle
- RedHat Linux7.2 上 Oracle 8i R2 (8.1.6) 企业版安装实例
- oracle 10.2g在CentOS 5.1和redhat 5企业版上的安装过程
- 负载均衡之轮询算法
- greenDao的基本使用及用法详解
- SAPUI5教程——ABAP环境下SAP Fiori 系统搭建以及开发实践
- spring和spring mvc 中有关父子容器自我归纳
- AWS EC2小结
- oracle学习使用--oracle安装都安装为企业版
- 请问js对象属性值为什么用数组也可以访问
- 算法细节系列(34):再见字符串(2)
- 151组最易混淆的单词
- 二维数组中的查找(java版)
- Mysql有两种存储引擎:InnoDB与Myisam
- Java中序列化的serialVersionUID作用
- 一个SQLiteReadOnlyDatabaseException的问题
- Android中的消息队列和线程队列机制