linux中rpm命令的作用

linux中rpm命令的作用,第1张

RPM软件包:这种软件包的扩展名为 “rpm” ,只能在使用RPM机制的Linux *** 作系统中安装,如RHEL、Fedora、centOS等。RPM软件包一般针对特定版本的 *** 作系统量身定制,因此依赖性较强。

源代码安装包:这种软件包是程序员开发完成的原始代码,一般被制作成 “targz” 或 “tarbz2” 等格式的压缩包文件,因多数使用 tar 命令打包而成的,所以经常被称为 “tarball”。 《Linux就该这么学》一起学习更多知识。

使用RPM软件包管理命令——RPM

一、RPM命令具有非常强大的功能,结合不同的命令选项及子选项主要可以实现以下三类功能。

1、查询、验证RPM软件包的相关信息。

2、安装、升级、卸载RPM软件包。

3、维护RPM数据库信息等综合管理 *** 作。

二、查询RPM软件包信息的各选项如下:

-q:查询已知名称的软件包是否已经安装;

-qp:针对尚未安装的RPM软件包文件进行查询;

-qa:显示当前系统中以RPM方式安装的所有软件列表;

-qi:查看指定软件包的名称、版本、许可协议、用途描述等详细信息(–info);

-ql:显示指定的软件包在当前系统中安装的所有目录、文件列表(–list);

-qf:查看指定的文件或目录是哪个软件包所安装的(–file);

-qpi:查看指定软件包的名称、版本、许可协议、用途描述等详细信息;

-qpl:查看该软件包准备要安装的所有目标目录、文件列表;

三、安装、升级、卸载 rpm软件包

在日常系统管理工作中,安装、升级及卸载软件包是管理应用程序是最基本的工作内容。那么我们来看一下,使用 rpm 命令实现这些 *** 作时,基本的命令选项:

-i:在当前系统中安装(install)一个新的RPM软件包;

-e:卸载指定名称的软件包;

-U:检查并升级系统中的某个软件包,若该软件包原来并未安装,则等同于“-i” 选项;

-F:检查并更新系统中的某个软件包,若该软件包原来并未安装,则放弃安装;

-h:在安装或升级过程中,以 # 号显示安装进度;

-v:显示软件安装过程中的详细信息;

–force:强制安装某个软件包,当需要替换以安装的软件包及文件,或者安装一个比当前使用的软件版本更旧的软件时,可以使用此选项;

–nodeps:在安装或升级、卸载一个软件包时,不检查与其他软件包的依赖关系。

四、维护RPM数据库

(1)重建rpm数据库

rpm数据库用于记录在Linux *** 作系统中安装、卸载、升级应用程序的相关信息,由rpm软件包管理系统自动完成维护、一般不需要我们用户干预。当RPM数据库发生损坏(可能是由于误删文件、非法关机、病毒破坏等导致),且 *** 作系统无法自动修复时,将导致无法正常使用 rpm 命令,这时我们可以执行以下 *** 作:

(2)导入验证公钥:

Mysql *** 作

创建数据库

新建数据库命令:Create database 数据库

查看所有数据库

命令:Show databases

打开数据库

命令:use 数据库名

删除数据库

命令:drop database 数据库名

创建表

命令:create table 表名(列名 数据类型,列名 数据类型,。。。。。。。)

查看当前数据库下所有表

命令:show tables

查看当前表结构

命令:desc 表名

删除表

命令:drop table 表名

插入数据insert

命令:Insert into 表名(字段1,字段2,字段3……)values(值1,值2,值3……)

查看数据select

命令:Select 字段1,字段2,……from 表名。字段之间用“,”隔开,如果查询所有的字段用“”来代替。

修改数据update

命令:update 表名 set 字段名1=‘新值1’,字段名2=‘新值2’ where='条件' 如果不加where条件那么将会把所有的记录的值都修改掉。

删除数据delete

命令:delete from 表名 where 条件。如果不加where条件那么将会把所有的记录都删除掉。

####

先use 数据库名

再 delete 表名 where 条件

就可以了

Linux 平台误删 oracle 数据文件的恢复方法

模拟误 *** 作:

数据库在正常运行,人工直接rm 掉了数据文件。

--1测试环境情况:

$ cat /etc/redhat-release

CentOS release 65 (Final)

select file_name from dba_data_files;

/u01/app/oracle/oradata/orcl/testdbf

$ sqlplus / as sysdba

SQLPlus: Release 112040 Production on 星期四 3月 5 15:55:14 2015

Copyright (c) 1982, 2013, Oracle All rights reserved

连接到:

Oracle Database 11g Enterprise Edition Release 112040 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

开启数据库归档

archive log list;

数据库日志模式 非存档模式

自动存档 禁用

存档终点 USE_DB_RECOVERY_FILE_DEST

最早的联机日志序列 3002

当前日志序列 3004

mkdir /u01/arch

alter system set log_archive_dest_1='location=/u01/arch' scope=spfile;

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup mount;

ORACLE 例程已经启动。

Total System Global Area 10088E+10 bytes

Fixed Size 2261928 bytes

Variable Size 1644170328 bytes

Database Buffers 8422162432 bytes

Redo Buffers 19595264 bytes

数据库装载完毕。

SQL> alter database archivelog;

数据库已更改。

SQL> archive log list;

数据库日志模式 存档模式

自动存档 启用

存档终点 /u01/arch

最早的联机日志序列 3002

下一个存档日志序列 3004

当前日志序列 3004

SQL> alter database open;

数据库已更改。

SQL> select open_mode from v$database;

OPEN_MODE

------------------------------------------------------------

READ WRITE

--2新建测试数据

select file_name from dba_data_files;

FILE_NAME

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/orcl/users01dbf

SQL> create tablespace wind datafile '/u01/app/oracle/oradata/orcl/wind01dbf' size 200m;

SQL> create user wind identified by wind01 default tablespace wind;

SQL> grant connect,resource,dba to wind;

$ sqlplus wind/wind01

create table t1

(

sid int not null primary key,

sname varchar2(10)

)

tablespace wind;

--循环导入数据

declare

maxrecords constant int:=100000;

i int :=1;

begin

for i in 1maxrecords loop

insert into t1 values(i,'ocpyang');

end loop;

dbms_outputput_line(' 成功录入数据! ');

commit;

end;

/

select count() from t1;

COUNT()

----------

100000

--3模拟删除数据

SQL> col tablespace_name for a20

SQL> select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME STATUS

-------------------- ---------------------------

SYSTEM ONLINE

SYSAUX ONLINE

UNDOTBS1 ONLINE

TEMP ONLINE

USERS ONLINE

TTSPACE ONLINE

OCPYANG ONLINE

OCPYANGINDEX ONLINE

LOBOCPYANG ONLINE

LOBOCPYANG01 ONLINE

LOBOCPYANG02 ONLINE

TABLESPACE_NAME STATUS

-------------------- ---------------------------

WIND ONLINE

rm -rf /u01/app/oracle/oradata/orcl/wind01dbf

ls /u01/app/oracle/oradata/orcl/ | grep wind

SQL> show user;

USER 为 "WIND"

SQL> select count() from t1;

COUNT()

----------

100000

SQL> desc t1

名称 是否为空 类型

----------------------------------------- -------- ----------------------------

SID NOT NULL NUMBER(38)

SNAME VARCHAR2(10)

SQL> delete from t1 where sid>99000;

已删除1000行。

SQL> commit;

提交完成。

SQL> select count() from t1;

COUNT()

----------

99000

--4恢复

ps -eaf|grep dbw0 |grep -v grep

oracle 1928 1 0 15:59 00:00:00 ora_dbw0_orcl

SQL> col tablespace_name for a20

SQL> select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME STATUS

-------------------- ---------------------------

SYSTEM ONLINE

SYSAUX ONLINE

UNDOTBS1 ONLINE

TEMP ONLINE

USERS ONLINE

TTSPACE ONLINE

OCPYANG ONLINE

OCPYANGINDEX ONLINE

LOBOCPYANG ONLINE

LOBOCPYANG01 ONLINE

LOBOCPYANG02 ONLINE

TABLESPACE_NAME STATUS

-------------------- ---------------------------

WIND ONLINE

cd /proc/1928/fd

ll

lr-x------ 1 oracle oinstall 64 Mar 5 16:20 0 -> /dev/null

l-wx------ 1 oracle oinstall 64 Mar 5 16:20 1 -> /dev/null

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 10 -> /u01/app/oracle/product/1120/db_1/dbs/lkORCL

lr-x------ 1 oracle oinstall 64 Mar 5 16:20 11 -> /u01/app/oracle/product/1120/db_1/rdbms/mesg/orausmsb

l-wx------ 1 oracle oinstall 64 Mar 5 16:20 2 -> /dev/null

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 256 -> /u01/app/oracle/oradata/orcl/control01ctl

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 257 -> /u01/app/oracle/fast_recovery_area/orcl/control02ctl

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 258 -> /u01/app/oracle/oradata/orcl/system01dbf

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 259 -> /u01/app/oracle/oradata/orcl/sysaux01dbf

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 260 -> /u01/app/oracle/oradata/orcl/undotbs01dbf

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 261 -> /u01/app/oracle/oradata/orcl/users01dbf

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 262 -> /u01/app/oracle/oradata/orcl/ttspace01dbf

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 263 -> /u01/app/oracle/oradata/orcl/ocpyang01dbf

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 264 -> /u01/app/oracle/oradata/orcl/ocpyangindex01dbf

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 265 -> /u01/app/oracle/oradata/orcl/lobocpyang01dbf

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 266 -> /u01/app/oracle/oradata/orcl/lobocpyang0101dbf

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 267 -> /u01/app/oracle/oradata/orcl/lobocpyang0202dbf

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 268 -> /u01/app/oracle/oradata/orcl/temp01dbf

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 269 -> /u01/app/oracle/oradata/orcl/wind01dbf (deleted) --注

lr-x------ 1 oracle oinstall 64 Mar 5 16:20 3 -> /dev/null

lr-x------ 1 oracle oinstall 64 Mar 5 16:20 4 -> /dev/null

lr-x------ 1 oracle oinstall 64 Mar 5 16:20 5 -> /dev/null

lr-x------ 1 oracle oinstall 64 Mar 5 16:20 6 -> /u01/app/oracle/product/1120/db_1/rdbms/mesg/orausmsb

lr-x------ 1 oracle oinstall 64 Mar 5 16:20 7 -> /proc/1928/fd

lr-x------ 1 oracle oinstall 64 Mar 5 16:20 8 -> /dev/zero

lrwx------ 1 oracle oinstall 64 Mar 5 16:20 9 -> /u01/app/oracle/product/1120/db_1/dbs/hc_orcldat

直接cp该句柄文件名回原位置:

$ pwd

/proc/1928/fd

cp /proc/1928/fd/269 /u01/app/oracle/oradata/orcl/wind01dbf

NOTE:

由于数据库一直是打开使用的,数据在不断变更则SCN也会不断的变化,

cp数据文件和数据库当前的信息明显不一致,此时需要对数据文件进行recover

--脱机数据文件

alter database datafile '/u01/app/oracle/oradata/orcl/wind01dbf' offline;

select count() from t1;

第 1 行出现错误:

ORA-00376: 此时无法读取文件 11

ORA-01110: 数据文件 11: '/u01/app/oracle/oradata/orcl/wind01dbf'

--恢复数据文件

recover datafile '/u01/app/oracle/oradata/orcl/wind01dbf';

--联机数据文件

alter database datafile '/u01/app/oracle/oradata/orcl/wind01dbf' online;

select count() from t1;

COUNT()

----------

99000

成功恢复

以上就是关于linux中rpm命令的作用全部的内容,包括:linux中rpm命令的作用、linux系统怎么删除mysql数据库数据、Oracle 误删控制文件,oracle 数据库没重启的情况下,怎么恢复等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9458847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存