Hoppa till: navigering, sök

Disk Devices

Commands to display all disks on a system:

  # cfgadm -s "select=type(disk)"
  # echo | format
  # format -e

Configure a disk to be used via iSCSI

  # svcadm enable svc:/network/iscsi/initiator
  # iscsiadm modify initiator-node -A myclient
  # iscsiadm add discovery-address
  # iscsiadm discovery -t enable
  # devfsadm -c iscsi

Replace a faulty disk c1t1d0 from ZFS pool testpool:

  # zpool offline testpool c1t1d0
  # cfgadm -c unconfigure c1::dsk/c1t1d0
  # cfgadm -c configure c1::dsk/c1t1d0
  # zpool replace testpool c1t1d0
  # zpool online testpool c1t1d0

Mirror existing boot disk c3t0d0s0 with disk c3t2d0s0

  # fdisk -B c3t2d0s0
Write the existing submirror disk vtoc to the replacement disk
# prvtoc /dev/rdsk/c3t0d0s0 | fmthard -s - /dev/rdsk/c3t2d0s0
Alternatively you can use the replaced disks vtoc from an
existing explorer data collector output, if installed.
For an exact copy, don't forget to check that the replacement
disk has the same HW specs as the disk it replaces

On x86 systems:

  # installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c3t2d0s0

On SPARC systems:

  # installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk/dev/rdsk/c3t2d0s0

Networking Manual Administration

Switch to manual network configuration:

  # netadm enable –p ncp defaultfixed

Show physical network interfaces:

  # dladm show-phys

Create interface with static IPv4 configuration:

  # ipadm create-ip net0
  # ipadm create-addr –T static –a local= net0/addr
  # ipadm show-addr

Create interface with DHCP configuration:

  # ipadm create-ip net0
  # ipadm create-addr –T dhcp net0/addr

Create interface with auto-generated IPv6 configuration:

  # ipadm create-ip net0
  # ipadm create-addr –T addrconf net0/addr

Configure default route:

  # route –p add default

Activate DNS configuration:

  # svccfg –s dns/client setprop config/nameserver = net_address:
  # svccfg –s dns/client setprop config/domain = astring: “”
  # svccfg –s name-service/switch setprop config/host = astring: \“files dns\”
  # svcadm refresh name-service/switch
  # svcadm refresh dns/client

Activate DNS configuration (alternate approach by editing /etc/resolv.conf and /etc/nsswitch.conf and then importing these modifications into SMF)

  # nscfg import –f svc:/system/name-service/switch:default
  # nscfg import –f svc:/network/dns/client:default
  # svcadm refresh dns/client

Solaris Kernel Params for Oracle Dbase

Starting with Solaris 10, these kernel adjustments are now done through Project Resource Management.

  • Adjustments done through the projects does not require a reboot anymore.
  • All that is needed from the user associated to the project is to re-login for changes to take effect.
  • This is an improvement, especially when multiple applications are running on the same server and CM/reboot restrictions apply.

Below is a table of kernel parameter definition and their equivalent in projects.

shmmax - indicates maximum allowable size of shared memory segment
         (default=1048576 (1mb) max=4294967295 (4gb))
shmmin - smallest size (bytes) of a shared memory segment
         (default=1 max=4294967295)
shmmni - maximum shared memory segments in the system
         (default=100 max=2147483647)
shmseg - maximum number of shared memory segments a user process can attach.
         Usually set equal to shmmni (default=6 max=32767 (32k))
semmns - the number of semaphores in the system
         (SID_A+SID_B)+(SID_C * 2)+(no. of instances * 10)
         where: SID_A,SID_B,SID_C = processes value per instance
                SID_C = has the largest value
semmni - the number of semaphore set identifiers that can be
         created at any one time
semmsl - maximum number of semaphores that can be in one semaphore set.
         Should be equal to or greater than the value of oracle processes.

Check the Resource Control value of a project

Example for Project user.root:
$ prctl -n project.max-shm-memory -i project user.root

Temporarily set 2 GB max shared memory

$ prctl -n project.max-shm-memory -v 2gb -r -i project user.root
$ prctl -n project.max-shm-memory -i project user.root

List existing value of process param of current session

$ prctl -n process.max-sem-nsems $$

Temporary set a new value of process param & verify the new settings

$ prctl -n process.max-sem-nsems -v 8192 -r -i process 9334
$ prctl -n process.max-sem-nsems 9334

Add a new project

$ projadd -p 200 -c "Oracle Database Project" \
       -K "project.max-shm-memory=(priv,4294967296,deny)" \
       -K "process.max-sem-nsems=(priv,1024,deny)" \
       -K "process.max-file-descriptor=(basic,4096,deny)"  oracledb
      -p   | assigned project id (is optional)
      -U   | list of member users
      -G   | list of member group
      -c   | comment
      -K   | key values

Verify changes added in /etc/project

To modify existing project use projmod.

$ projmod -s -K "project.max-shm-memory=(priv,4gb,deny)" \
              -K "process.max-sem-nsems=(priv,2000,deny)" \
              -K "process.max-file-descriptor=(basic,4096,deny)" oracledb

Check a list of running processes and their assigned projects

$ prstat -J