`
bby
  • 浏览: 8174 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

BBY-Oracle笔记第一篇

阅读更多
select username,count(username) from v$session where username is not null group by username

查看oracle当前的连接数
select * from v$session where username is not null

Oracle导出导入
exp system/manager buffer=64000 file=./full.dmp full=y
(system/manager@vacsdb)
exp apts/oracle buffer=64000 file=./full.dmp full=y
Oracle导入
imp system/oracle buffer=64000 file=d:\full.xml full=y
或者通过pl/sql

select username,count(username) from v$session where username is not null group by username #查看不同用户的连接数
select count(*) from v$session   #总连接数
Select count(*) from v$session where status='ACTIVE' #并发连接数
show parameter processes   #最大连接数
alter system set processes = value scope = spfile;重启数据库   #修改连接
/home/oracle9i/app/oracle9i/dbs/init.ora
/home/oracle9i/app/oracle9i/dbs/spfilexxx.ora ## open_cursor

默认的用户名和密码
scott   密码是 tiger
sys     密码是 change_on_install
system  密码是 manager
sysman  密码是 oem_temp
其中直接管理模式可以为sysdba的为后面三个,要是集群的话再去掉system,每一个管用的,见下边修改。

Oracle更改用户密码
sqlplus / as sysdba 这是以SYSDBA这个角色登陆SQLPLUS,SYSDBA只是个角色,它本身并没有密码;
用sysdba进入的时候,就可以改密码了
alter  user  username account  unlock  identifed  by  password
当前登录用户
select user from dual;
查看数据库版本
show parameter compatible;
表空间查询(需要特定权限)
1、空闲表空间
select tablespace_name,file_id,block_id,bytes,blocks from dba_free_space;
2、临时表空间
Select file#,status,name from V$tempfile;
3、表空间属性修改
alter tablespace lizi read write;
创建表空间
1. create tablespace sales 
2. //datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M  datafile ‘D:\oracle\product\10.2.0\oradata\apts\apts01.dbf’ size 800M
3. autoextend on 
4. next 50M 
5. maxsize unlimited 

查询当前数据库名
方法一:select name from v$database;
方法二:show parameter db
方法三:查看参数文件。

表空间导出

只导APTS那几个
1、alter tablespace APTS_WORK read only;(其他几个空间也调为只读)
2、把这几个空间导出到一个文件exp transport_tablespace=y tablespaces=APTS_AD,APTS_GPS,APTS_HIST,APTS_INDX,APTS_WORK file=/tablespaces.dmp
提示输入用户名时:apts/oracle as sysdba
导入表空间文件
版本不一致报错,需升级compatible
http://blog.chinaunix.net/u2/65284/showart_2194509.html
Oracle重启
http://lelong.javaeye.com/blog/515063
ALTER USER username ACCOUNT UNLOCK;
su – oracle
$ lsnrctl start
$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup;

ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程 解决方法:加大PROCESSES
sessions=(1.1*process+5)
show parameter processes;
show parameter sessions;
alter system set processes=300 scope=spfile;
alter system set sessions=335 scope=spfile;
需要附加的操作:
show parameter SHARED_SERVER;
alter system set SHARED_SERVER =10 scope=spfile;
但是我们增加process数时,往往数据库不能启动了。这因为我们还漏调了一个unix系统参数:它是/etc/proc/kernel 中semmns,这是unix系统的信号量参数。每个process会占用一个信号量。semmns调整后,需要重新启动unix操作系统,参数才能生 效。不过它的大小会受制于硬件的内存或ORACLE SGA。范围可从200——2000不等。
semmns的计算公式为:
SEMMNS>processes+instance_processes+system
processes=数据库参数processes的值
instance_processes=5(smon,pmon,dbwr,lgwr,arch)
system=系统所占用信号量。系统所占用信号量可用下列命令查出:
#ipcs -s
其中列NSEMS显示系统已占用信号量。其它一些跟连接有关的参数,如 licence_max_sessions, licence_sessions_warning 等默认设置都为零,也就是没有限制。我们可以放心大胆地使用数据库了。
ORACLE启动步骤
su – oracle
[oracle@websvr1 oracle]$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup
SQL> quit
[oracle@websvr1 oracle]$ lsnrctl start
可用 [oracle@websvr1 oracle]$ lsnrctl status 查看监听是否已经启动
关闭步骤
su – oracle
[oracle@websvr1 oracle]$ lsnrctl stop
[oracle@websvr1 oracle]$ sqlplus /nolog
SQL> connect / as sysdba
SQL> shutdown immediate
SQL> quit
两行变一行的视图
create or replace view v_dis_gis_routemiles as
select routecode,
       sum(sm) upmiles,
       sum(xm) downmiles,
       sum(st) uptimes,
       sum(xt) downtimes
from (
              select routecode,
                     decode(direction,'0',mm,0) as sm,
                     decode(direction,'1',mm,0) as xm,
                     decode(direction,'0',tt,0) as st,
                     decode(direction,'1',tt,0) as xt
              from(
                    select routecode,direction,max(miles) mm,max(timescost) tt
                    from services_master
                    group by routecode,direction
              )
)
group by routecode;
Oracle从现有数据库导出数据到新建数据库步骤(XP系统):
1、 利用pl/sql工具导出当前用户所有对象,得到.sql类型备份文件(表结构、视图、存储过程等),再导出表,得到.dmp类型备份文件(数据);
2、 准备系统,并安装Oralce数据库;
3、 在新Oracle上依次创建与原数据库相同名字的实例、表空间、用户,并提交;
4、 创建表空间、用户、授权、提交、导入sql备份、dmp备份的命令如下:
sqlplus /nolog
connect / as sysdba
create tablespace vacs_work datafile 'c:\oracle\product\oradata\vacsdb\vacs_work.dbf' size 50M autoextend on next 50m maxsize unlimited extent management local autoallocate segment space management auto;

create user vacs identified by vacs default tablespace vacs_work;
grant dba,connect,resource,aq_administrator_role,aq_user_role,authenticateduser to vacs;(最后一个授权不识别时去掉)
commit;
exit;
cd c:\Remote
imp vacs/vacs@vacsdb file=vacs_19.dmp FULL=Y COMMIT=Y log=vacs.log
导入数据完成!

注意:以上步骤导入sql文件时由于是从linux系统到XP系统,报未识别字符集错误;后改变导入导出方式,放弃pl/sql(步骤1),完全在cmd控制台上用命令实现:
远程导出:
exp vacs/vacs@192.168.167.19/vacsdb buffer=64000 file=full.dmp full=y
(用户导出用owner=vacs代替full=y,只导出某个表分区用参数tables=(GPS:GPS_20101110)代替)
导入本地:
imp vacs/vacs@vacsdb buffer=64000 file=d:\full.xml full=y
附图如下:






超图Oracle完全卸载、建立表空间和用户的方法(郭老板友情提供):
一、 超图完全卸载oracle:
1、运行DBCA,删除数据
2运行Orcale universal Insraller,删除组件
3、停止Orcale服务
4、删除注册表中Oracle的信息
      删除HKEY_LOCAL_MACHINE\SOFTWARE\ORCALE目录
      删除HKEY_LOCAL_MACHINE\SYSTEM
CurrentControlSet\Services下所有的orcale开头的目录
5、重启计算机
6、删除Oracle目录
命令行停止orcale服务
oradim -shutdown -sid "orcl"
监听
lsnrctl stop
启动oracle
oradim -startup -sid "orcl"
启动监听
lsnrctl start
services.msc
注:实际卸载过程执行完1/2步骤后找不到oracle程序了,3/4步骤没有执行;
二、 超图建用户、表空间:
1、建立表空间的脚本
create tablespace map datafile 'C:\oracle\product\10.2.0\oradata\orcl\map.dbf' size 200M autoextend on next 50M;
2、创建用户
create user map identified by map default tablespace map;
3、分配权限
grant connect to map;
grant resource to map;
4、提交
commit;

常用查看操作命令
Linux查看端口使用情况
http://linux.chinaunix.net/techdoc/install/2008/05/21/1005976.shtml
who命令查看当前linux系统连接所有用户
查看所有用户
select username from dba_users;
查看job作业记录
select * from user_jobs;
删除表空间
set timing on
drop tablespace TBS_TEST including contents;
删除用户以及用户所有的对象
drop user zfmi cascade;
当前字符集查询:select userenv('language') from dual;
查询当前数据库实例名
方法一:select instance_name from v$instance;
方法二:show parameter instance
方法三:在参数文件中查询。

创建表空间、用户并授权
create tablespace sms datafile '+DATA' size 10G logging;
create user sms identified by sms
grant connect to sms;
grant resource to sms;

Oracle并发问题
通过事务和锁机制解决
事务:数据库的一个操作单元,要么全做,要么全不做;commit/rollback表示事务结束;参照hibernate事务管理配置。
加锁:待看。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics