如何搭建linux ldapweb管理界面

如何搭建linux ldapweb管理界面,第1张

1、安装openldap-servers软件包

2、查看ldap模板文件的存放位置:

3、拷贝ldap模板文件到配置文件目录并修改文件名为slapd.conf。

4、删除/etc/openldap目录下原有的文件,保留下这几个文件,注意:以前学时是要删除schema文件,直留下三个,但是我测试时如果删除schema服务将失败。

5、修改slapd.conf文件的权限:

6、修改sldap.conf配置文件:如下:(主要配好红色的就ok,没有的都是被注释掉的)

复制代码

代码如下:

include /etc/openldap/schema/corba.schema

include /etc/openldap/schema/core.schema

include /etc/openldap/schema/cosine.schema

include /etc/openldap/schema/duaconf.schema

include /etc/openldap/schema/dyngroup.schema

include /etc/openldap/schema/inetorgperson.schema

include /etc/openldap/schema/java.schema

include /etc/openldap/schema/misc.schema

include /etc/openldap/schema/nis.schema

include /etc/openldap/schema/openldap.schema

include /etc/openldap/schema/ppolicy.schema

include /etc/openldap/schema/collective.schema

allow bind_v2

pidfile /var/run/openldap/slapd.pid argsfile /var/run/openldap/slapd.args

database bdb suffix "dc=example,dc=com" checkpoint 1024 15 rootdn

"cn=Manager,dc=example,dc=com"

rootpw redhat

directory /var/lib/ldap

index objectClass eq,pres

index ou,cn,mail,surname,givenname eq,pres,sub

index uidNumber,gidNumber,loginShell eq,pres

index uid,memberUid eq,pres,sub

database monitor

access to * by dn.exact="cn=Manager,dc=example,dc=com" read by * none

7、重启动ldap服务器:

8、创建ldap用户目录:

9、编辑一个自动创建ldap用户的脚本:

10 、执行此脚本添加用户:

11、把ldap用户,组分别导出来,到一个文件中:(例子只做了组)用户在、/etc/passwd下

12、安装软件包:

13、去它的目录下编译ldap用户组文件:

14、修改migrate_common.ph文件:

15、执行./migrate_base.pl文件,并导出到一个目录下边,进行进行修改,只留下最基本的三个配置:

16,、分别使用./migrate_passwd.pl ./migrate_group.pl编译我们已经导出的ldap用户和组文件: /mnt/user /mnt/group分别是从/etc/passwd /etc/group 导出的ldap用户和组文件

/date/user.ldif /date/group.ldif 是编译后生成的文件要以ldif结尾

17、看下/date下我们编译好的几个文件:

18、添加ldap用户和组:

首先提示输入密码,其次添加成功。

还有个用户,必须首先执行base.ldif文件,它是最基本的配置。

可以的

注释:

一个未开图形界面的Linux OS,如何安装oracle软件及数据库,如下是2大步骤

1、克隆软件

2、手动建库

一、克隆软件

1、基本配置

1.1)系统软件包安装

yum -y install

binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf

elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common

glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686

libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++

libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC-devel

1.2)用户创建

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba oracle

passwd oracle

1.3)文件配置

1.3.1) 环境变量

vi ~oracle/.bash_profile

export ORACLE_BASE=/data/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1

export

ORACLE_SID=test

# 最多 8个字符 *** 作系统和 oracle实例关联的纽带 ORACLE_HOME+ORACLE_SID==>hash==&

gt共享内存段

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin# 将安装后的 oracle 命令追加到执行搜索路径

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib # 动态库的位置

export nls_lang="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" #客户端字符集设置

# 加载配置 :oracle 用户注销重新登录 或 source .bash_profile

1.3.2) 主机

echo

"10.240.1.7 Database-backup" >> /etc/hosts#避免报错startup

noumount时报错ORA-00000: normal, successful completion

1.3.3) 软件目录

mkdir -p /data/app/oracle/product/11.2.0.4/db_1

chown -R oracle:oinstall /data/app

1.3.4) 资源限制

1.3.4,1) vim /etc/sysctl.conf 添加到文件底端

kernel.shmall = 2097152

#Total amount of shared memory available(bytes or

pages)页的数量 2097152*4096/1024/1024/1024=8G如果内存大于 8G,必须修改此参数

kernel.shmmax = 2147483648

# 要>= 物理内存的一半 Maximum size of shared memory segment(bytes)建议 >=sga_max_size(oracle申请内存大小 )

# 单个程序内存段最大多少 4G 的话分为两段 mem_seg1 mem_seg2,影响效率

kernel.shmmni = 4096

#Maximum number of shared memory segments system-wide页的大小

kernel.sem =250 32000 100 128

SEMMSL SEMMNS SEMOPM SEMMNI

SEMMSL Maximum number of semaphores per set每个信号对象集的最大信号对象数

SEMMNS Maximum number of semaphores

system-wide系统范围内最大信号对象数 SEMMNS = SEMMSL*SEMMNI

SEMOPM每个信号对象支持的最大 *** 作数

SEMMNI Maximum number of semaphore identifiers系统范围内最大信号对象集数

fs.file-max #系统中所允许的文件句柄最大数目

net.ipv4.ip_local_port_range # 应用程序可使用的 IPv4 端口范围

net.core.rmem_default #套接字接收缓冲区大小的缺省值

net.core.rmem_max #套接字接收缓冲区大小的最大值

net.core.wmem_default #套接字发送缓冲区大小的缺省值

net.core.wmem_max #套接字发送缓冲区大小的最大值

#注释:OS32bit,oracle 最多申请 1.7G应该装64bitOS

#加载参数 sysctl -p

1.3.4 ,2) /etc/security/limits.conf oracle 在 linux 上 *** 作的limit

[root@dba ~]# grep -v '^#' /etc/security/limits.conf

oracle soft nproc 2047 #oracle 在 linux上打开 proc 数量

oracle hard nproc 16384

oracle soft nofile 1024 #oracle 在 linux上打开 file 的数量

oracle hard nofile 65536

[root@dba ~]# grep 'limit' /etc/pam.d/system-auth

session required pam_limits.so

1.3.4,3) 关闭防火墙、SELINUX

iptables -F

更改 /etc/selinux/config 文件 -->SELINUX=disabled

2、克隆 ORACLE_HOME

2.1)将远程ORACLE_HOME完全复制到本地

#进入到本地ORACLE_HOME路径

su - oracle

cd /data/app/oracle/product/11.2.0.4/

#将远程ORACLE_HOME完全复制到本地

scp -pr oracle@10.240.1.8:/data/app/oracle/product/11.2.0.4/db_1/ .

2.2)执行clone.pl 克隆脚本更改参数配置(ORACLE_SID、ORACLE_HOME)

$ cd /data/app/oracle/product/11.2.0.4/db_1/clone/bin

$ ls

clone.pl prepare_clone.pl

#注意每个参数后,等号后不能有空格,否则被识别成无效选项

$ perl clone.pl ORACLE_SID=test ORACLE_BASE=/data/app/oracle ORACLE_HOME=/data/app/oracle/product/11.2.0.4/db_1/ ORACLE_HOME_NAME=OraDb11g_home1

.......最后提示如下信息表示,克隆成功...

The following configuration scripts need to be executed as the "root" user.

/data/app/oracle/product/11.2.0.4/db_1/root.sh

To execute the configuration scripts:

1. Open a terminal window

2. Log in as "root"

3. Run the scripts

The cloning of OraDb11g_home1 was successful.

...................

二、手动建库

1、配置参数文件 (测试环境简单参数,若有需求,可补充 )

[oracle@Database-backup ~]$ cd $ORACLE_HOME/dbs

[oracle@Database-backup dbs]$ pwd

/data/app/oracle/product/11.2.0.4/db_1/dbs

[oracle@Database-backup dbs]$

[oracle@Database-backup dbs]$ cat inittest.ora

db_name=test

db_files = 80

db_file_multiblock_read_count = 8

log_checkpoint_interval = 10000

processes = 50

parallel_max_servers = 5

log_buffer = 32768

max_dump_file_size = 10240# limit trace file size to 5 Meg each

global_names = TRUE

#control_files = (ora_control1, ora_control2)

sga_max_size=300M

sga_target=300M

*.local_listener='(ADDRESS_LIST=(Address=(Protocol=tcp)

(Host=10.240.1.7)(Port=1521)))' #避免启动数据库时报错(ORA-00119、ORA-00130

local_listener配置无效)

[oracle@Database-backup dbs]$

2、启动数据库到nomount

#进入数据库

[oracle@Database-backup dbs]$sqlplus / as sysdba

#开启数据库到nomount状态

SQL>startup nomount

ORACLE instance started.

Total System Global Area 313159680 bytes

Fixed Size 2252824 bytes

Variable Size104861672 bytes

Database Buffers 201326592 bytes

Redo Buffers 4718592 bytes

SQL>

3、创建数据库,到open状态 --->前提:mkdir -p /data/app/dbf/;chown -R oracle:oinstall /data/app/dbf/

SQL>CREATE DATABASE test

USER SYS IDENTIFIED BY change_on_install

USER SYSTEM IDENTIFIED BY manager

LOGFILE GROUP 1 ( '/data/app/dbf/redo01.log') SIZE 100M,

GROUP 2 ('/data/app/dbf/redo02.log') SIZE 100 M,

GROUP 3 ('/data/app/dbf/redo03.log') SIZE 100 M

MAXLOGFILES 5

MAXLOGMEMBERS 5

MAXLOGHISTORY 1

MAXDATAFILES 100

MAXINSTANCES 1

CHARACTER SET ZHS16GBK

NATIONAL CHARACTER SET AL16UTF16

DATAFILE '/data/app/dbf/system01.dbf' SIZE 325M REUSE

EXTENT MANAGEMENT LOCAL

SYSAUX DATAFILE '/data/app/dbf/sysaux01.dbf' SIZE 325 M REUSE

DEFAULT TABLESPACE users datafile '/data/app/dbf/users.dbf' size 50m

DEFAULT TEMPORARY TABLESPACE tempts1

TEMPFILE '/data/app/dbf/temp01.dbf'

SIZE 20 M REUSE

UNDO TABLESPACE undotbs

DATAFILE '/data/app/dbf/undotbs01.dbf'

SIZE 200 M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED

Database created.

SQL>

4、确认数据库状态

SQL>select status from v$instance

STATUS

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

OPEN

SQL>

5、 将DBF 设置自动扩展,避免稍后执行脚本加载数据字典表/包/scott用户 时空间不足

alter database datafile 1 autoextend on

alter database datafile 2 autoextend on

alter database datafile 3 autoextend on

alter database datafile 4 autoextend on

6、创建数据字典/包/scott用户

数据字典视图 : @?/rdbms/admin/catalog.sql

系统包/存储过程 : @?/rdbms/admin/catproc.sql

用户PROFILE表 : @?/sqlplus/admin/pupbld.sql

以上已完成安装oracle软件及数据库.

问题整理和完善

1、***** sqlplus / as sysdba 提示未找到libclntsh.so.11.1文件

[oracle@Database-backup ~]$ sqlplus / as sysdba

sqlplus: error while loading shared libraries: libclntsh.so.11.1: cannot

open shared object file: No such file or directory

[oracle@Database-backup ~]$cd $ORACLE_HOME/lib/

[oracle@Database-backup lib]$ ls libclntsh.so*

libclntsh.so libclntsh.so.10.1 -->只有10.1 cp -rp 连带属性完全复制一份,正常若有libclntsh.so.11.1文件可能是权限问题。

[oracle@Database-backup lib]$ cp -rp libclntsh.so.10.1 libclntsh.so.11.1

[oracle@Database-backup lib]$ sqlplus / as sysdba

... 正常.

2、用于sys密码登录

orapwd file=orapwtest password=test

3、ORA-00904: "wm_concat":invalid identifier

执行创建WMSYS用户脚本

SQL>@?/rdbms/admin/owmctab.plb

SQL>@?/rdbms/admin/owmaggrs.plb

SQL>@?/rdbms/admin/owmaggrb.plb

4、创建数据库时报错

ERROR at line 1:

ORA-01092: ORACLE instance terminated. Disconnection forced

ORA-01501: CREATE DATABASE failed

ORA-01519: error while processing file '?/rdbms/admin/dtxnspc.bsq' near line 5

ORA-00604: error occurred at recursive SQL level 1

ORA-30012: undo tablespace 'UNDOTBS02' does not exist or of wrong type

Process ID: 35451

Session ID: 2661 Serial number: 1

原因:参数文件和创建数据库脚本的默认undo空间不一致。

唔,暂时小记一下checkpoint / restore,希望之后能回顾并深入认识下目前的问题。

CRIU全称“Checkpoint / Restore in Userspace”,是一个为Linux提供检查点/恢复功能的工具,主要是对运行中的应用进行冻结(freeze)再基于其在磁盘上的所有文件建立检查点,并根据checkpoint恢复冻结时状态并继续运行。CRIU可以运用到场景包括:应用热迁移(live migration)、快照、远程调试(debugging)等等。CRIU为OpenVZ、LXZ/LXD、Docker等都提供了很好的支持。

/proc是一个基于内存的文件系统,包括CPU、内存、分区划分、[I/O地址]、直接内存访问通道和正在运行的进程等等,Linux通过/proc访问内核内部数据结构及更改内核设置等。Checkpoint很大程度上是基于/proc文件系统进行的,主要依赖/proc获取文件描述符信息、管道参数、内存映射等。

Checkpoint通过进程转存器(process dumper)进行以下步骤:

Restore恢复过程主要进行以下步骤:

Docker container实际上也是一个进程,故CRIU实质上是对容器进程进行checkpoint/restore。

源码装CRIU有一丢丢麻烦,记得把官网说的那些库都下完整哦。

docker虽然提供了checkpoint,但切换至experimental下才能用,新建/etc/docker/daemon.json文件,(docker的配置文件,默认没有)。

若该文件参数更改很多,就会起冲突......解决办法:尽量只将自己需要更改的配置参数写入就好,若还冲突,就启动docker时手动指定参数或脚本启动吧。

另外,我使用docker 18及之后的版本时,checkpoint无法正常使用,主要出现以下问题:

据说是???moby的原因,但看Stackflow上的问题也还是open的,关闭了一个但感觉他关的莫名其妙;有一个问题下,开发人员说解决了,但还未推到新版本。我的解决办法:试验之后, 建议使用较新版本17.06进行checkpoint/restore ,可以正常使用,可能18版本(小生年方18,尚未婚娶)太新了脚跟还没站稳。

现在可以开始愉快地使用docker checkpoint了!!Docker CLI提供了checkpoint命令。

create

ls

rm 无话可说

start

启动时没有单独的命令,但在container start可以指定checkpoint选项参数,如将容器从/home/vickee/chkps/目录下的chkp0恢复:

注意:在创建checkpoint时,若我们指定的路径为/home/PATH,则恢复时还需要具体指定到该路径下的/home/PATH/[CONTAINER_FULL_ID]/checkpoints。因为恢复时,我们可能新建容器,或者将另一个容器从别的容器的checkpoint恢复,故需自己根据checkpoint信息进行路径完善。

CRIU对最新内核的支持有限,且好像在较新版本中,移除了--checkpoint-dir即指定目录这一特性。

若容器运行时有用external terminal( docker run -t ),checkpoint会失败的。[ 参数-t 让docker分配一个伪终端并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开,常一起使用。]

links:

https://criu.org/Docker

https://criu.org/Installation

https://criu.org/Checkpoint/Restore


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

原文地址: http://outofmemory.cn/yw/7248081.html

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

发表评论

登录后才能评论

评论列表(0条)

保存