When setting up a RMAN backup to tape i encountered the following issue on a Oracle 9.2 database (not sure if it applies to older database versions; i´d say no…):
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
ORA-07217: sltln: environment variable cannot be evaluated.
It turned out the script used to start the rman backup was the problem:
connect target /
connect catalog rman/rman@catalog
run {
backup database;
}
After changing the target connection line to include the username, password and TNS connect string the backup ran fine:
connect target sys/sys@database
connect catalog rman/rman@catalog
run {
backup database;
}
In case you locked yourself out of the Networker you can add a user from the command line with the following command:
nsraddadmin -u "user=administrator, host=machine1"
Just a short how to rename grid disks (and keep the size). In the example below the grid disks name contained a typo ‘FALSH02′ and had to be renamed to ‘FLASH02′:
dcli -c exadata01cel01 -l root "cellcli -e drop griddisk ALL prefix=FALSH02 force"
dcli -c exadata01cel01 -l root "cellcli -e creategriddisk ALL HARDDISK prefix=FLASH02"
Sample output:
[root@exadata01db01 ~]# dcli -c exadata01cel01 -l root "cellcli
-e drop griddisk ALL prefix=FALSH02 force"
exadata01cel01: GridDisk FALSH02_CD_00_exadata01cel01 successfully dropped
exadata01cel01: GridDisk FALSH02_CD_01_exadata01cel01 successfully dropped
exadata01cel01: GridDisk FALSH02_CD_02_exadata01cel01 successfully dropped
exadata01cel01: GridDisk FALSH02_CD_03_exadata01cel01 successfully dropped
exadata01cel01: GridDisk FALSH02_CD_04_exadata01cel01 successfully dropped
exadata01cel01: GridDisk FALSH02_CD_05_exadata01cel01 successfully dropped
exadata01cel01: GridDisk FALSH02_CD_06_exadata01cel01 successfully dropped
exadata01cel01: GridDisk FALSH02_CD_07_exadata01cel01 successfully dropped
exadata01cel01: GridDisk FALSH02_CD_08_exadata01cel01 successfully dropped
exadata01cel01: GridDisk FALSH02_CD_09_exadata01cel01 successfully dropped
exadata01cel01: GridDisk FALSH02_CD_10_exadata01cel01 successfully dropped
exadata01cel01: GridDisk FALSH02_CD_11_exadata01cel01 successfully dropped
[root@exadata01db01 ~]# dcli -c exadata01cel01 -l root "cellcli
-e create griddisk ALL HARDDISK prefix=FLASH02"
exadata01cel01: GridDisk FLASH02_CD_00_exadata01cel01 successfully created
exadata01cel01: GridDisk FLASH02_CD_01_exadata01cel01 successfully created
exadata01cel01: GridDisk FLASH02_CD_02_exadata01cel01 successfully created
exadata01cel01: GridDisk FLASH02_CD_03_exadata01cel01 successfully created
exadata01cel01: GridDisk FLASH02_CD_04_exadata01cel01 successfully created
exadata01cel01: GridDisk FLASH02_CD_05_exadata01cel01 successfully created
exadata01cel01: GridDisk FLASH02_CD_06_exadata01cel01 successfully created
exadata01cel01: GridDisk FLASH02_CD_07_exadata01cel01 successfully created
exadata01cel01: GridDisk FLASH02_CD_08_exadata01cel01 successfully created
exadata01cel01: GridDisk FLASH02_CD_09_exadata01cel01 successfully created
exadata01cel01: GridDisk FLASH02_CD_10_exadata01cel01 successfully created
exadata01cel01: GridDisk FLASH02_CD_11_exadata01cel01 successfully created"
Sine i need to check the maximum size of tablespace with autoextend enabled i write the following query:
set linesize 100
set pagesize 100
select
a.tablespace_name,
round(SUM(a.bytes)/(1024*1024*1024)) CURRENT_GB,
round(SUM(decode(b.maxextend, null, A.BYTES/(1024*1024*1024),
b.maxextend*8192/(1024*1024*1024)))) MAX_GB,
(SUM(a.bytes)/(1024*1024*1024) - round(c.Free/1024/1024/1024)) USED_GB,
round((SUM(decode(b.maxextend, null, A.BYTES/(1024*1024*1024),
b.maxextend*8192/(1024*1024*1024))) - (SUM(a.bytes)/(1024*1024*1024) -
round(c.Free/1024/1024/1024))),2) FREE_GB,
round(100*(SUM(a.bytes)/(1024*1024*1024) -
round(c.Free/1024/1024/1024))/(SUM(decode(b.maxextend, null, A.BYTES/(1024*1024*1024),
b.maxextend*8192/(1024*1024*1024))))) USED_PCT
from
dba_data_files a,
sys.filext$ b,
(SELECT
d.tablespace_name ,sum(nvl(c.bytes,0)) Free
FROM
dba_tablespaces d,
DBA_FREE_SPACE c
WHERE
d.tablespace_name = c.tablespace_name(+)
group by d.tablespace_name) c
WHERE
a.file_id = b.file#(+)
and a.tablespace_name = c.tablespace_name
GROUP BY a.tablespace_name, c.Free/1024
ORDER BY tablespace_name;
The result looks like this:
TABLESPACE_NAME CURRENT_GB MAX_GB USED_GB FREE_GB USED_PCT
------------------------------ ---------- ---------- ---------- ---------- ----------
SYSAUX 16 32 1 31 3
SYSTEM 16 32 0 32 0
TEST 10 11 0 10.85 0
UNDOTBS1 16 32768 0 32768 0
UNDOTBS2 16 32768 0 32768 0
UNDOTBS3 16 32768 0 32768 0
UNDOTBS4 16 32768 0 32768 0
UNDOTBS5 16 32768 0 32768 0
UNDOTBS6 16 32768 0 32768 0
UNDOTBS7 16 32768 0 32768 0
UNDOTBS8 16 32768 0 32768 0
USERS 1 32 0 32 0
A few days before i posted a short howto how to configure iSCSI multipathing with Nexenta. This post covers the configuration of the linux initiator using iSCSI multipathing.
Before we start a preleminary note: It is a very good idea (i´d call it: “required”) to use separate subnets for each physical interface. Do NOT use the same subnet accross different network interfaces!
If you do not comply with this simple rule you will end up having problems with so called Arp Flux (also documented here, here, here and so on) which requires further modifications.
For configuring and using iSCSI multipathing the following packages are needed:
- device-mapper-multipath
- device-mapper-multipath-libs
- iscsi-initiator-utils
Our testlab used a VM based on Oracle Enterprise Linux 6 Update 2 with two physical interfaces:
- eth1: 192.168.1.200/24
- eth3: 192.168.10.2/24
Read more…
This is a short post about how to configure iSCSI multipathing using Nexenta. I let it is neccessary to document it since the documentation is rather spare about it.
In my lab setup i had a machine with two physically separated interfaces:
- e1000g0: 192.168.1.5/24 and
- e1000g1: 192.168.10.1/24

As you can see both interfaces are on different subnets. Note that it is a very good idea (i´d call it: “required”) to use a separate subnet for each interface. It will save you a lot of trouble and problems!
If you do not comply with this simple rule you will end up having problems with so called Arp Flux (also documented here, here, here and so on) which requires further modifications.
Note: If you modify and existing installation you only need to execute Step #2 and Step #3. Everything else should already be there.
Read more…
Starting with the Oracle Unbreakable Enterprise Linux Kernel (UEK) the ASMlib drivers are now included in the kernel. This means that updating the kernel does not require installing the appropriate kernel modules as well.
In addition to the kernel modules you need the following packages:
- oracleasm-support
- oracleasmlib
For Oracle Enterprise Linux “oracleasm-support” can be found on the installation media while “oracleasmlib” is not available on the installation media. “oracleasmlib” can be downloaded over the ULN network (more information here).
If you dont have a ULN account or using Red Hat you can get the freely available packages (for OEL and Red Hat) here.
When using Nexenta it is highly recommended to attach the syspool disks via AHCI instead of SATA. Attaching them via SATA might cause I/O errors leading to complete outages. The only way to solve this is to replace the driver with AHCI.
Normally changing the driver for the syspool requires a complete reinstallation. However if you want to avoid this simple follow this guide:
- Boot with Nexenta Setup CD; Choose “Rescue System”
- when booted import the syspool with:
zpool import -f syspool
- Install boot loader on ALL disks belonging to the syspool, e.g. for the first disk:
grub-install /dev/rdsk/c0t0d0s0
- Export the syspool:
zpool export syspool
- Reboot
Done. The system now uses AHCI drivers.
I just migrated my Ubuntu iSCSI storage server to Ubuntu 12.04 which ships with a new iSCSI implementation: LIO (linux-iscsi.org). Aside from the fact that this project lacks a HUGE amount of documentation I want to share this problem with you:
kernel: Exiting Time2Retain handler because session_reinstatement=1
This happens if you access LUNs from more multiple nodes (as required for RAC setups) while all nodes share the same initiatorname.
The fix is to use different and unique initiatornames for every node.