linux命令行oracle启动步骤如下:
1、切换目录
cd oracle可执行程序目录下(自定义,可以参考/home/oracle/.bash_profile)
2、加载环境变量
source /home/oracle/.bash_profile
3、管理员账号登录控制台,启动oracle
sqlplus / as sysdba
SQL> startup;
启动oracle成功后,exit退出控制台
4、启动监听,查看监听的服务状态
lsnrctl start
lsnrctl status
1、查看dbf路径
select name from v$datafile;
2、创建表空间
create tablespace JAVAUSER_TMP datafile '/home/oracle/tablespaces/JAVAUSER_TMP.dbf' size 2500M autoextend on next 100M maxsize unlimited logging extent management local autoallocate segment space management auto;
3、创建用户
create user javauser_tmp identified by bjhz2020 default tablespace JAVAUSER_TMP temporary tablespace temp;
4、查看用户
select username from dba_users;
5、查看变量,导出导入文件应该放在哪里(DATA_PUMP_DIR)
select * from dba_directories;
6、用户授权
(1) grant connect to javauser_tmp; 可以连接权限 但不能操作
(2) grant resource to javauser_tmp; 可以操作数据库
(3) grant dba to javauser_tmp; 管理员权限
7、导入数据库dmp文件
export ORACLE_HOME=/home/u01/app/product/11.2.0.4/dbhome_1
select * from dba_directories;
cd /home/u01/app/product/11.2.0.4/dbhome_1/bin
./impdp javauser_tmp/bjhz2020@ORCL directory=DATA_PUMP_DIR dumpfile=javauser_tmp20231208.dmp remap_schema=javauser_tmp:javauser_tmp remap_tablespace=JAVAUSER_TMP:JAVAUSER_TMP logfile=impdp_javauser_tmp.log
8、查看用户下表空间的权限
select distinct(tablespace_name) from dba_segments where owner=upper('javauser_tmp');
9、给用户添加表空间
alter user user_tmp quota unlimited on MEDICALSTAGE_ARMY;
示例
:oracle给表空间Table1,新增授权userA,密码为123,授权所有权限
1、创建用户并指定表空间:
如果表空间Table1已经存在,您可以创建用户USERA,指定默认表空间,并设置密码
CREATE USER USERA IDENTIFIED BY "123" DEFAULT TABLESPACE Table1 QUOTA UNLIMITED ON Table1;
2、授权
GRANT ALL PRIVILEGES TO USERA;
10、查看表空间使用量单位M
select df.tablespace_name ,totalspace,freespace ,round((1-freespace/totalspace)*100,2) "used" from (select tablespace_name,round(sum(bytes)/1024/1024) totalspace from dba_data_files group by tablespace_name) df, (select tablespace_name,round(sum(bytes)/1024/1024) freespace from dba_free_space group by tablespace_name) fs where df.tablespace_name=fs.tablespace_name;
11、扩表空间
1)SELECT ddf.file_name FROM Dba_Data_Files ddf where ddf.tablespace_name = 'sunright_xz' //查找表空间位置
2)ALTER TABLESPACE SUNRIGHT_XZ ADD DATAFILE '/mnt/sdb1/epointyz013.dbf' SIZE 30000M; #dbf前名称得变
12、删除表空间和用户
先删除用户
drop user javauser_tmp cascade;
后删除表空间(当表空间为某个用户的默认表空间时,需先删除用户)
drop tablespace MEDICALSTAGE_ARMY including contents and datafiles;
13、查看连接数
select count(*) from v$process;
14、解锁用户
alter user javauser_tmp account unlock;
15、查看所有表空间
select tablespace_name from dba_tablespaces;
查看表空间所有表名
SELECT table_name
FROM dba_tables
WHERE tablespace_name = '你的表空间名';
16、查看字段信息
在Oracle中,要查看表空间data1下表T1的所有字段信息,可以使用以下SQL命令
SELECT COLUMN_NAME
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME = 'T1'
AND OWNER = 'data1';
17、数据备份
1、创建备份目录
create directory BACKUP_DIR as ‘备份路径(如:/home/oracle/backup/)’;
2、检查备份目录信息
select * from dba_directories;
3、将第一步中创建的文件名称赋权给将要导出的用户
GRANT READ,WRITE ON DIRECTORY BACKUP_DIR to TEST1;
4、使用expdp命令导出数据库
在Oracle中,可以使用expdp
命令行工具来备份数据。以下是一个基本的命令行备份示例:
expdp username/password@db_link DIRECTORY=directory_name DUMPFILE=dump_file_name.dmp SCHEMAS=schema_name LOGFILE=log_file_name.log
-
username/password
: 替换为你的数据库用户名和密码。 -
db_link
: 替换为你的数据库连接字符串。 -
directory_name
: 是Oracle目录对象的名称,指向一个实际的文件系统目录。你需要先在数据库中创建一个目录对象并授权给用户。 -
dump_file_name.dmp
: 是导出的数据泵文件名。 -
schema_name
: 是你想要备份的模式名。 -
log_file_name.log
: 是操作日志文件名。
确保在执行expdp
命令前,已经创建好目录对象并设置了适当的权限。
示例
:expdp TEST1/TEST1@orcl schemas=TEST1 dumpfile=database_TEST1.dmp directory=BACKUP_DIR logfile=database_TEST1.log