You are on page 1of 202

PI Data Archive

System Management Guide

Part of PI Server 2018 SP3 Patch 1


OSIsoft, LLC
1600 Alvarado Street
San Leandro, CA 94577 USA
Tel: (1) 510-297-5800
Fax: (1) 510-357-8136
Web: https://www.osisoft.com

PI Data Archive System Management Guide


© 2009-2020 by OSIsoft, LLC. All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or
by any means, mechanical, photocopying, recording, or otherwise, without the prior written permission
of OSIsoft, LLC.
OSIsoft, the OSIsoft logo and logotype, Managed PI, OSIsoft Advanced Services, OSIsoft Cloud Services,
OSIsoft Connected Services, OSIsoft EDS, PI ACE, PI Advanced Computing Engine, PI AF SDK, PI API,
PI Asset Framework, PI Audit Viewer, PI Builder, PI Cloud Connect, PI Connectors, PI Data Archive,
PI DataLink, PI DataLink Server, PI Developers Club, PI Integrator for Business Analytics, PI Interfaces,
PI JDBC Driver, PI Manual Logger, PI Notifications, PI ODBC Driver, PI OLEDB Enterprise,
PI OLEDB Provider, PI OPC DA Server, PI OPC HDA Server, PI ProcessBook, PI SDK, PI Server, PI Square,
PI System, PI System Access, PI Vision, PI Visualization Suite, PI Web API, PI WebParts, PI Web Services,
RLINK, and RtReports are all trademarks of OSIsoft, LLC. All other trademarks or trade names used herein
are the property of their respective owners.
U.S. GOVERNMENT RIGHTS
Use, duplication or disclosure by the U.S. Government is subject to restrictions set forth in the OSIsoft, LLC
license agreement and as provided in DFARS 227.7202, DFARS 252.227-7013, FAR 12-212, FAR
52.227-19, or their successors, as applicable. OSIsoft, LLC.
Version: 3.4.435
Published: 23 March 2020
Contents

Introduction to PI Data Archive system management................................................... 1


PI System overview......................................................................................................................................... 1
PI Data Archive directory structure..................................................................................................................2
File system best practices for PI Data Archive.................................................................................................. 3
PI Data Archive subsystems.............................................................................................................................3

Tools for PI Server management................................................................................. 5

Downloading PI SDK.................................................................................................. 7

PI Data Archive data flow........................................................................................... 9


Exception reporting....................................................................................................................................... 10
Turn off exception reporting.......................................................................................................................11
Snapshot....................................................................................................................................................... 11
Compression testing......................................................................................................................................12
Compression guidelines............................................................................................................................. 14
Event queue.................................................................................................................................................. 14

Start and stop PI Data Archive...................................................................................17


Shutdown events........................................................................................................................................... 17
Set shutdown events for specific points......................................................................................................17

Time specifications and considerations...................................................................... 19


PI time...........................................................................................................................................................19
PI time abbreviations................................................................................................................................. 19
PI time expressions.................................................................................................................................... 20
Time-stamp specification.......................................................................................................................... 21
Time-interval specification........................................................................................................................ 22
Display time zone information.......................................................................................................................22
Time zone information and Daylight Saving Time transition rules..............................................................23
Time zone display options for pidiag -tz..................................................................................................... 23
Display local and UTC time........................................................................................................................ 24
Display a different time zone..................................................................................................................... 24
Customize standard and Daylight Saving Time changes............................................................................ 25
Determine whether a time string is ambiguous..........................................................................................25
Specify time zones.....................................................................................................................................25
Translate time formats.................................................................................................................................. 25
String to integer format sample output..................................................................................................... 26
Integer format to string sample output......................................................................................................26

PI Data Archive backups........................................................................................... 27


PI Data Archive scheduled backup configuration........................................................................................... 27
Recommended disk configuration for PI Data Archive backups..................................................................28
Configure a PI Data Archive scheduled backup.......................................................................................... 29
PI Data Archive collectives and backups.....................................................................................................34
View backup history of a PI Data Archive server.............................................................................................35
PI Data Archive backup types.....................................................................................................................36

PI Data Archive System Management Guide iii


Contents

Change the number of backups shown in the Backup History table............................................................36


View backup information summary........................................................................................................... 36
View backup details................................................................................................................................... 37
Troubleshooting PI Data Archive backups......................................................................................................39
View PI Data Archive backup logs and messages....................................................................................... 39
Common issues with backups.................................................................................................................... 40
PI Data Archive backup failure due to offline subsystem............................................................................ 40
Perform an on-demand PI Data Archive backup.........................................................................................41
Export PI Data Archive backup history....................................................................................................... 42
PI Data Archive backup scripts.......................................................................................................................42
pibackuptask.bat....................................................................................................................................... 43
pibackup.bat..............................................................................................................................................43
pisitebackup.bat........................................................................................................................................ 43
pintbackup_3.4.370.bat............................................................................................................................. 44
afbackup.bat............................................................................................................................................. 44
How PI Data Archive backup verification works............................................................................................. 44
Restore PI Data Archive from a backup..........................................................................................................45
Restore a backup to an existing PI Data Archive server.............................................................................. 46
Restore a PI Data Archive backup to a new computer.................................................................................47

PI points in PI Data Archive....................................................................................... 49


Case sensitivity..............................................................................................................................................49
Point classes and attributes........................................................................................................................... 49
Predefined point classes............................................................................................................................ 50
Predefined attribute sets........................................................................................................................... 51
Base class point attributes......................................................................................................................... 54
Classic point class attributes...................................................................................................................... 65
Built-in attributes.......................................................................................................................................67
System-assigned attributes....................................................................................................................... 68
Find malfunctioning points............................................................................................................................69
Create points.................................................................................................................................................69
Deleting and decommissioning points........................................................................................................... 70
Decommission a point with Point Builder...................................................................................................70
Decommission multiple points with PI Builder........................................................................................... 70
Change PI point type......................................................................................................................................71
Allowable point type coercions.................................................................................................................. 71
Point type changes and archives................................................................................................................ 72
Configure error handling............................................................................................................................ 72
Modification of PI point classes...................................................................................................................... 73
Required access permissions and other restrictions.................................................................................... 73
Point classes database edit........................................................................................................................ 74
Editing a point's point class........................................................................................................................ 77
Point database audit.................................................................................................................................. 78
Digital state sets............................................................................................................................................ 79
Digital state name conventions..................................................................................................................79
The SYSTEM digital state set..................................................................................................................... 79
Define a digital state set............................................................................................................................ 82

Archives.................................................................................................................. 85
Fixed or dynamic archive files........................................................................................................................ 85
Primary archive files.................................................................................................................................. 85
Archive records......................................................................................................................................... 86
Index records.............................................................................................................................................86

iv PI Data Archive System Management Guide


Contents

Fixed and dynamic archives....................................................................................................................... 86


Archive management.................................................................................................................................... 87
Archive management tools........................................................................................................................88
Locate the archive files.............................................................................................................................. 88
Prevent archive data loss........................................................................................................................... 89
Automatic event-queue reset.................................................................................................................... 89
Archive creation with PI SMT.....................................................................................................................90
Archive size............................................................................................................................................... 92
Archive registration................................................................................................................................... 93
Archive shifts............................................................................................................................................. 95
Start and stop interfaces..........................................................................................................................100
Annotations in PI SMT............................................................................................................................. 100
Manage archive gaps............................................................................................................................... 103
Archive reprocessing................................................................................................................................ 103
Configure number of archives monitored for read-write errors................................................................ 106
Prevent archive changes.......................................................................................................................... 106
Export a list of archives to a file................................................................................................................ 107
Create a .bat registration file ................................................................................................................... 108
Move archive files.................................................................................................................................... 108
Delete an archive event........................................................................................................................... 109
Delete an archive..................................................................................................................................... 110
Check for corrupt archives........................................................................................................................110
Backfilling management.............................................................................................................................. 111
Best practices for backfilling.....................................................................................................................111
Prepare PI Data Archive for backfilling..................................................................................................... 112
Backfill a new archive............................................................................................................................... 112
Backfill existing archives from new PI points.............................................................................................113
Clear the Pt Created snapshot..................................................................................................................114
Backfill data with a piconfig script............................................................................................................ 115
Offline archive file management with piarchss............................................................................................. 116
Tips for using the offline archive utility..................................................................................................... 116
Display unregistered archive information................................................................................................. 117
Offline archive utility command-line options............................................................................................ 117
Run the offline archive utility....................................................................................................................118
Time ranges............................................................................................................................................. 120
Offsets for event time stamps (-tfix -tfixend)............................................................................................122
Merge or divide archives.......................................................................................................................... 123

PI Data Archive security.......................................................................................... 125


Security overview........................................................................................................................................ 125
Manage authentication................................................................................................................................125
Authentication management with Windows security...............................................................................126
Interface authentication management with PI trusts............................................................................... 129
Manage PI Data Archive user accounts and groups...................................................................................132
Manage authorization.................................................................................................................................. 133
Understanding access permissions old and new....................................................................................... 133
Where to set access permissions.............................................................................................................. 136
Set access permissions............................................................................................................................. 139
Tighten security........................................................................................................................................... 141
Secure the piadmin account..................................................................................................................... 141
Require passwords on all user accounts.................................................................................................... 141
Disable all explicit PI Data Archive logins..................................................................................................141
Disable explicit logins for individual user accounts................................................................................... 142

PI Data Archive System Management Guide v


Contents

Future data............................................................................................................ 143


Products supporting future data.................................................................................................................. 144
Future PI points........................................................................................................................................... 144
Restrictions with future PI points............................................................................................................. 146
Future archives............................................................................................................................................ 146
Analytics with future data............................................................................................................................148
Use cases and examples.............................................................................................................................. 148
Weather example: High-level procedure...................................................................................................... 148
Weather example: Verify PI Server installation.........................................................................................149
Weather example: Create and populate PI points with weather data........................................................149
Weather example: Create PI AF elements and attributes..........................................................................150
Weather example: Create trends and analyze data...................................................................................151

PI interfaces........................................................................................................... 153
PI interface utilities...................................................................................................................................... 153
Interface maintenance............................................................................................................................. 153

PI Data Archive monitoring..................................................................................... 155


Windows performance counter monitoring..................................................................................................155
Which performance counters to monitor..................................................................................................155
Build performance monitor points........................................................................................................... 158
Use a trend to monitor performance points............................................................................................. 158
PI System messages................................................................................................................................ 159
PI Data Archive daily health check ...............................................................................................................163
Connection history...................................................................................................................................... 164
Manage fragmentation of PI Data Archive files............................................................................................ 165

PI Data Archive tuning parameters.......................................................................... 167


Configurable tuning parameters.................................................................................................................. 167
Edit tuning parameters in SMT.................................................................................................................... 168
Add a tuning parameter to the list............................................................................................................... 168

Data retrieval with foreign data sources (COM connectors)........................................169

Troubleshooting..................................................................................................... 171
Troubleshooting checklist............................................................................................................................ 171
General troubleshooting tasks..................................................................................................................... 174
Verification that PI Data Archive processes are running............................................................................ 174
Connection checking................................................................................................................................ 177
Specific issues.............................................................................................................................................. 177
PI ProcessBook trend flatlines.................................................................................................................. 177
Issues with COM connectors.................................................................................................................... 179
Pending update limit................................................................................................................................ 179

Repairs.................................................................................................................. 181
Repair the archive manager data file............................................................................................................ 181
Archive file corruption................................................................................................................................. 182
Recovery of a non-primary archive........................................................................................................... 182
Recover a primary archive........................................................................................................................ 182
Correction of archive event time stamps...................................................................................................... 183
Time conversion file format..................................................................................................................... 184

vi PI Data Archive System Management Guide


Contents

Snapshot recovery.......................................................................................................................................184
Recover from future times in the snapshot...............................................................................................185
Rebuild the snapshot file.......................................................................................................................... 185
Removal of future-time snapshots........................................................................................................... 187
Database repair........................................................................................................................................... 187
Repair the PI Module Database................................................................................................................ 188
Diagnose and repair PI Data Archive database files......................................................................................188
List the header and index......................................................................................................................... 188
Compress a file base file...........................................................................................................................189
Recover file-base file................................................................................................................................189
Recover from accidental system time change.............................................................................................. 190
Recover from accidental time change at interface node that uses PI Buffer Subsystem............................ 191

Technical support and other resources..................................................................... 193

PI Data Archive System Management Guide vii


Contents

viii PI Data Archive System Management Guide


Introduction to PI Data Archive system management
Topics in this section
• PI System overview
• PI Data Archive directory structure
• File system best practices for PI Data Archive
• PI Data Archive subsystems

PI System overview
The PI System collects, stores, and manages data from your plant or process. The PI System
includes the following types of products.
Note:
Many introductory and training videos are available on the OSIsoftLearning YouTube
channel (https://www.youtube.com/user/OSIsoftLearning).

• Data sources
Data sources are the instruments that generate data. They can connect to interface nodes in
various ways. PI Performance Equations, PI ACE, and Totalizer are also considered data
sources, even though they may be hosted on a PI Server.

• Interfaces and connectors


PI interfaces get data from external data sources and send it to the PI Server. Each data
source needs a PI interface that can interpret it. OSIsoft offers over 400 interfaces.
Similar to PI interfaces, PI connectors collect data from sensors and control systems. PI
connectors require minimal configuration and simplify data collection by scanning for a
specific device protocol, collecting PI points, and automatically creating a PI Asset
Framework model for your asset.
• PI Server
The PI Server is the heart of the PI System. PI Server includes:

◦ PI Data Archive
PI Data Archive receives or retrieves data and serves it in real time throughout the PI
System and your entire information infrastructure. With PI Data Archive, everyone works
from a common set of real-time data. Operators, engineers, managers, and other plant
personnel use client applications to connect to the PI Server and view manufacturing
data from the PI data archives or external data storage systems.
We recommend running PI Data Archive on a separate computer from those that run PI
interfaces and client applications. This distributed data collection architecture is
scalable, robust, and flexible. When the high availability (HA) architecture is used, PI
Data Archive runs on two or more synchronized computers that act as one logical PI Data
Archive collective. For more information, search for "high availability" in PI Live Library
(https://livelibrary.osisoft.com/).

PI Data Archive System Management Guide 1


Introduction to PI Data Archive system management

◦ PI Asset Framework (PI AF)


PI AF lets you define consistent representations of organizational assets or equipment. PI
AF uses these representations in simple or complex analyses that yield critical and
actionable information.

• Developer tools
Developer tools support the development of custom applications on top of the PI System, as
well as the integration of PI System data with other applications and business systems such
as Microsoft Office or SQL Server, enterprise resource planning systems, reporting and
analytics platforms, web portals, and geospatial and maintenance systems.

◦ PI API
The PI Application Programming Interface (PI API) provides a programmatic interface to
PI information from PI Data Archive. PI API also provides utilities for data collection
interfaces and user application development. Code written with the PI API is portable
across multiple hardware and software environments.

◦ PI SDK
The PI Software Development Kit (PI SDK) is a programming library that uses an object-
oriented, hierarchical approach to provide read and write access to PI Server features.
The PI SDK software consists of an in-process COM server, several common controls and
dialogs, and supporting code libraries. The kit includes documentation, example code,
support files, and tools.

• PI AF SDK
The PI AF Software Development Kit (PI AF SDK or AFSDK) provides programmatic access
to PI Server data (PI Data Archive and PI AF).

• Client applications
Operators, engineers, managers, and other plant personnel use a variety of client
applications to connect to PI Data Archive, PI AF, and PI application servers to view plant
data. PI Vision, PI ProcessBook, PI DataLink, and PI WebParts are all client applications.

PI Data Archive directory structure


When you install PI Data Archive, the setup program prompts you for a location to store the
files. By default, PI Data Archive installs its files in a folder called PI on the disk with the most
available space. The PISERVER environment variable points to this directory.
The PI directory includes the following subdirectories:
Subdirectory Contents
Program Files\PI\adm Administrative tools.
Program Files\PI\bin Subsystem or PI service executables.
Program Files\PI\dat Databases and tables such as Point Database and Digital State Table.
This is also the default directory for archive files and the event queue.
Program Files\PI\interfaces Interfaces that were installed with previous versions of PI Data
Archive. This directory is not present on new PI Data Archive
installations.
Program Files\PI\log Log files.

2 PI Data Archive System Management Guide


Introduction to PI Data Archive system management

Subdirectory Contents
Program Files\PI\setup Files for install and uninstall.

In addition to the PI directory, the PI Data Archive installation creates the pipc directory
during the PI SDK installation. The pipc directory contains files for the PI SDK and other tools
and utilities, including PI SMT, Collective Manager, and PI ICU. The PIHOME environment
variable points to this directory.

File system best practices for PI Data Archive


• Disable virus scanning on the PI\dat and archive folders. Virus scanning might affect the
integrity of archive or other database files. The problem with virus scanning is that, because
the data is random, it might have a bit pattern that matches a known virus signature. The
virus scanning software then locks and quarantines the data file.
• Use Windows file system compression with caution. File compression might slow down PI
Data Archive's access to archive files. Compression can significantly reduce archive size, but
more CPU resources are required to access a compressed file. Do not use file compression
on files that are frequently accessed, such as recent archives.

PI Data Archive subsystems


Some PI Data Archive subsystems depend on other subsystems for proper behavior. All
subsystems wait at startup for any dependent subsystems. The executable for each subsystem
is installed in the PI\bin directory. PI Data Archive subsystems run as Windows services. You
can check the status of these services in the Windows Services tool or in System Management
Tools (Operation > PI Services).
PI Data Archive requires the following core subsystems.
PI Data Archive core subsystems
Subsystem Executable Purpose Dependencies
Archive piarchss.exe Stores and serves the data after it comes Snapshot
out of the snapshot subsystem. Data
Update Manager
consists of multiple time-stamped
measurements for each data point. License Manager

Base pibasess.exe Maintains the Point Database, Digital Update Manager


State Table, and configuration databases
License Manager
for authentication; hosts the PI Module
Database; validates user logins.
License Manager pilicmgr.exe Maintains license information for PI
Data Archive and all connected
applications.
Message pimsgss.exe Records status and error messages for If this subsystem is
PI Data Archive in a log file. not available,
messages are
routed to the
Windows event
log.

PI Data Archive System Management Guide 3


Introduction to PI Data Archive system management

Subsystem Executable Purpose Dependencies


Network Manager pinetmgr.exe Manages communication between PI
Data Archive subsystems, interfaces, and
client applications. Also validates clients
at connection time. Clients are standard
products such as PI ProcessBook, and
custom PI API or PI SDK programs.
Snapshot pisnapss.exe Stores the most recent event for each Update Manager
point, applies compression, sends data
License Manager
to the event queue, serves snapshot
events, and sends updates for client
applications to PI Update Manager.
Update Manager piupdmgr.exe Queues notifications of changes in data Essential for
values, point attributes, modules, and so proper operation
on to any interface or client application of PI Data Archive;
that is signed up for notification. most subsystems
and client
applications
require it.
AF Link piaflink.exe Synchronizes PI MDB and PI AF. Network Manager

Non-core subsystems are not essential to run PI Data Archive.


PI Data Archive non-core subsystems
Subsystem Executable Description
Alarm pialarm.exe Provides alarm capabilities for PI points.
Backup pibackup.exe Manages PI Data Archive backups.
Batch pibatch.exe Detects and records batch activity.
This subsystem is licensed separately and might
not be installed on your PI Data Archive server.

Performance Equations pipeschd.exe Performs Performance Equation (PE) calculations


for PE points.
Recalculator pirecalc.exe Recalculates values of PE points after historical
changes.
Redirector piudsrdr.exe Obtains data from external systems and sends it to
the Base, Archive, and Snapshot subsystems.
Shutdown pishutev.exe Determines when PI Data Archive was stopped and
writes shutdown events to points configured to
receive these events. It runs only at startup and
then stops.
SQL pisqlss.exe Prepares and executes SQL statements directed at
PI Data Archive. The primary users of this
subsystem are the PI ODBC Driver and the PI SDK.
Totalizer pitotal.exe Performs post-processing calculations on a point
in the snapshot and stores the results in a PI
Totalizer point.

4 PI Data Archive System Management Guide


Tools for PI Server management
OSIsoft provides several tools and utilities for managing PI Server.
In addition to the following graphical user interface tools, PI Server also includes powerful
command-line utilities. For information about PI Data Archive utilities, see the PI Data Archive
Reference topic "PI Data Archive command-line utilities" in Live Library (https://
livelibrary.osisoft.com). For information about PI AF utilities, see the PI System Explorer topics
under "PI AF utilities and plug-ins" in Live Library (https://livelibrary.osisoft.com).

PI System Management Tools (SMT)


PI System Management Tools (SMT) is a graphical user interface that you can use to perform
many PI Data Archive administration tasks, including configuring security settings, managing
archives, building and configuring points, and viewing message logs.
PI SMT is included in thePI Data Archive installation. See the OSIsoft Knowledge Base article,
How do I download PI System Management Tools (PI SMT), on the customer portal: OSIsoft
Customer Portal (https://my.osisoft.com/).
To run PI SMT, select Start > All Programs > PI System > PI System Management Tools.

PI System Tray
PI System Tray help you monitor PI Data Archive and PI AF servers.
PI System Tray displays as an icon on your Windows task bar. The icon shows the status of the
PI Data Archive and PI AF servers that it monitors, and shows alerts when issues occur. PI
System Tray also provides shortcuts for viewing system messages, starting and stopping PI
Data Archive and PI AF, and starting PI System Management Tools (SMT) and PI System
Explorer.
By default, PI System Tray monitors the default PI Data Archive server or collective and the PI
AF application service associated with the default PI AF server. You can monitor additional
servers or change the monitored servers as needed.
PI System Tray launches automatically when you install PI SMT. To manually launch it, select
Start > All Programs > PI System > PI System Tray.

PI Builder
PI Builder is a Microsoft Excel add-in that allows you to work with PI Asset Framework and PI
Data Archive objects in bulk. Use PI Builder to create, delete, and edit PI objects, such as points,
elements, and attributes.
In PI Server 2014 and later, PI Builder replaces PI Tag Configurator.
For more on PI Builder, see the PI Server topics under "PI Builder" in Live Library (https://
livelibrary.osisoft.com).

PI Interface Configuration Utility (ICU)


PI Interface Configuration Utility (ICU) is a point-and-click tool for configuring PI interfaces. To
configure an interface with the ICU, you must run it directly on the interface node. This means
you must install the ICU on each interface node.

PI Data Archive System Management Guide 5


Tools for PI Server management

ICU is included in the PI SMT installation, see the OSIsoft Knowledge Base article, How do I
download PI System Management Tools (PI SMT), on the customer portal: OSIsoft Customer
Portal (https://my.osisoft.com/).
To run the ICU, select Start > All Programs > PI System > PI Interface Configuration Utility.

PI Collective Manager
Use PI Collective Manager to manage high availability (HA) collectives in PI Data Archive. You
can create PI Server collectives, configure existing collectives and their servers, and view the
status of collectives.
PI Collective Manager is included in the PI SMT installation.
To run Collective Manager, select Start > All Programs > PI System > PI Collective Manager.

PI SDK Utility
Many clients and some interfaces communicate with the PI Data Archive server through the PI
SDK. PI SDK Utility provides troubleshooting features, such as checking connectivity,
performing point searches, viewing message logs, and enabling tracing. PI SDK Utility replaces
About PI-SDK.
To run PI SDK Utility, select Start > All Programs > PI System > PI SDK Utility.

PI System Explorer
PI System Explorer provides a graphical user interface for creating, editing, and managing PI
AF objects and assets, including analytics and event frames, in PI AF server. Use PI System
Explorer to create and manage your asset framework, including PI AF databases, elements, and
templates. If you are new to PI Asset Framework, start with PI System Explorer.
To run PI System Explorer, select Start > All Programs > PI System > PI System Explorer.

Buffering Manager
Buffering Manager helps you set up buffering with the PI Buffer subsystem. When upgrading
from an older version of the PI Buffer subsystem or from API Buffer Server, Buffering Manager
helps ensure that buffering is configured properly for existing interfaces. After upgrading, you
can also use Buffering Manager to add PI Data Archive servers or collectives that will receive
buffered data.
With Buffering Manager, you can also:
• Modify buffering settings for the computer that Buffering Manager is running on, specific
servers, and collectives receiving buffered data.
• View buffering status, estimated buffer capacity, number of events sent and queued, and any
point errors for servers and collectives.
• Export files containing detailed information about the status of buffering on a computer.
• View messages with additional information for troubleshooting issues.

6 PI Data Archive System Management Guide


Downloading PI SDK
The PI Software Development Kit (PI SDK) is a programming library providing access to PI
Servers. The PI SDK uses an object-oriented, hierarchical approach to provide both read and
write access to features of the PI Server. The PI SDK software consists of an in-process COM
server, several common controls and dialogs, and supporting code libraries. The kit comes with
on-line documentation, example code, various support files and tools.
Contact OSIsoft Technical Support through the OSIsoft Customer Portal Contact Us page
(https://customers.osisoft.com/s/contactus) for more information.

PI Data Archive System Management Guide 7


Downloading PI SDK

8 PI Data Archive System Management Guide


PI Data Archive data flow
This section provides an overview of the data flow in PI Data Archive.

1. Interface sends data to PI Data Archive. PI interfaces collect data from the data sources and
pass them on to the server in the form of events. An event consists of a time stamp, a value,
and a status. Before sending an event to PI Data Archive, the interface evaluates the event: it
sends significant events to PI Data Archive and discards the others. This is called exception
reporting. Interfaces complete the following steps:
a. Get data and create an event.
b. Perform exception testing to determine if event is significant.
c. Send significant events to PI Data Archive and discard the rest.
d. If buffering is configured, save the events on disk in case PI Data Archive is unavailable.
Note:
The buffering service may also perform compression testing and fans data to all
members of a PI collective. This is called n-way buffering.
2. PI Snapshot Subsystem receives all data. On PI Data Archive, all new events are handled first
by PI Snapshot Subsystem. PI Snapshot Subsystem holds a single value for each PI point. If
data comes in time order, incoming events become new snapshot values.
When a new value comes in, PI Snapshot Subsystem evaluates the old value by performing
compression testing. Based on the results of the compression testing, PI Snapshot Subsystem
either discards the old value or sends it to the event queue. PI Snapshot Subsystem
completes the following steps:
a. Get a new event and make this event the new snapshot value.
b. If the new event is out-of-order, send it directly to the event queue without performing
any compression testing. Otherwise, perform compression testing between the old and
new events.
c. Send significant events to the event queue and discard the rest.
3. PI Archive Subsystem reads data from the event queue. PI Archive Subsystem continuously
reads data in the event queue and stores it in a memory cache, and eventually into archive
files. However, when PI Archive Subsystem is shut down or unable to receive data, the event
queue holds the data, serving as a high-speed buffer. When available, PI Archive Subsystem
resumes data processing. PI Archive Subsystem completes the following steps:
a. Read events out of the event queue.
b. Validate and store events in the write cache.
c. Periodically move data from the write cache into archive files.
4. Users access the data through client applications. The ultimate goal of a PI System is to
distribute information across the enterprise or organization to those who use it to make key
decisions. To achieve this goal, OSIsoft produces a number of client tools that display PI Data
Archive data in various formats.

Topics in this section


• Exception reporting

PI Data Archive System Management Guide 9


PI Data Archive data flow

• Snapshot
• Compression testing
• Event queue

Exception reporting
Exception reporting ensures that a PI interface only sends meaningful data, rather than
sending unnecessary data that taxes the system.
Exception reporting uses a simple deadband algorithm to determine whether to send events to
PI Data Archive. For each point, you can set exception reporting specifications that create the
deadband. The interface ignores values that fall inside the deadband.

In the preceding illustration, the interface reports values A, D, and C to PI Data Archive. Value A
is the last reported value. Values B and C fall within the exception deadband, but value D falls
outside the deadband. The interface reports value D along with the previous value: in this case,
value C. Compression testing will determine if C needs to be preserved, or if A and D are
sufficient to recreate the original signal with the required fidelity.
The interface uses the point's ExcDev, ExcMin, and ExcMax attributes to determine whether to
report the new value to PI Data Archive. For details on setting exception-reporting attributes,
see ExcDev, ExcDevPercent, ExcMax, and ExcMin.
Note:
Some interfaces do not support exception reporting. See your interface documentation to
determine whether the interface supports this capability.

10 PI Data Archive System Management Guide


PI Data Archive data flow

Turn off exception reporting


To generate an exception for every event, turn off exception reporting.

Procedure
1. Set the ExcMax point attribute to 0.
2. Set the ExcDev or ExcDevPerc point attribute to 0.

Snapshot
PI Snapshot Subsystem gets the new data from the interface node and holds the most recent
value for each point. This most recently acquired value for a point is called the snapshot.

PI Data Archive evaluates the previous snapshot according to the compression specifications
and either sends the old value to the event queue or discards it.
Note:
Sometimes an event enters PI Snapshot Subsystem with a time stamp that is older than
the current snapshot value. This is called an out-of-order event. PI Data Archive sends
out-of-order events directly to the event queue for archiving, without compression
testing.

PI Data Archive System Management Guide 11


PI Data Archive data flow

These values in PI Snapshot Subsystem are called snapshot events or just snapshots. The
collection of all the snapshot values for all the points is the Snapshot Table.
Note:
The out-of-order event is the incoming event with the older timestamp of the last event in
the system.

Compression testing
Compression testing ensures that you store just enough data to accurately reproduce the
original signal.
PI Snapshot Subsystem uses compression testing to determine what events need to be saved in
the archive. For example, in the following illustration all the events fall on the same straight
line. In a simple case like this, you do not need to store all the points on the line. If you store
just two points, you can recreate the point value for any other time.

The same principle applies to compressing real-world data. PI Data Archive uses a compression
algorithm to determine which events to store. The compression test can essentially recreate
other events through extrapolation of surrounding events. This compression method is called
swinging-door compression.
When the PI Snapshot Subsystem receives a new value, the value's time stamp is the last
snapshot value that was received before the latest snapshot value. This value is recorded only if
any of the values since the last recorded value do not fall within the compression deviation
blanket.

12 PI Data Archive System Management Guide


PI Data Archive data flow

Any data point which was excluded via compression would have been within the above
parallelogram.
Note:
For more information on compression testing, see the OSIsoft Learning Channel video:
watch?v=.
Each point has three attributes that comprise the compression specifications: CompDev or
CompDevPercent (compression deviation), CompMin (compression minimum time), and
CompMax (compression maximum time). CompDev is the half-width of the deviation blanket (as
shown in the illustration). For details, see CompDev, CompDevPercent, CompMax, and
CompMin.
An event bypasses the compression process and is put in the event queue in the following
instances:
• The Compressing attribute for the point is set to Off.
• The event's time stamp is older than the time stamp of the current snapshot. Such an event
is considered out of order.
• The Status attribute of the point has changed.
• The event is annotated.
Swinging-door compression is not used when the Step attribute is set to On. Instead, an
exception calculation is applied using the CompDev value. If the absolute difference between
the current snapshot and the last archive value is greater than CompDev, then the snapshot is
sent to the archive. For more information, see Step attribute in PI points.

PI Data Archive System Management Guide 13


PI Data Archive data flow

Compression guidelines
Compression gives you the flexibility to configure on a per-point basis, with the option of
archiving relevant information. Compression impacts performance, bandwidth, and data
access. Compression not only saves storage space, it also helps you to store only meaningful
data. PI Data Archive stores the actual values received from the source, not interpolations,
averages, or approximations. This dramatically improves performance for users and does not
cause loss of significant data.
You have complete control over the amount of compression used, from the most compression
(lossy) to the least compression (lossless). For example:
• Turn compression on for noisy signals.
• Turn compression on and set the compression deviation (CompDev) attribute to zero. With
this setting, successive identical values (or values aligning perfectly) are not archived. This
is more efficient than turning compression off.
• Turn compression off for manually entered and totalized data, and for points where each
event is significant and not merely representative of an underlying flow (such as lab
measurements). When compression is turned off, all exceptions are recorded.
A PI Data Archive installation with default compression values is appropriate for most cases.
Setting compression requires you to apply your process knowledge about the nature of the
signal. One compression-deviation specification does not work for all measurements. Consider
sensor type, instrument accuracy, and so on. Fortunately, there are broad categories of
measurements in a process plant. Similar flow meters, pressure gauges, and thermocouples
have the same degree of repeatability and reproducibility in their measurements.

Event queue
The event queue serves as a memory and disk buffer between the snapshot subsystem and
archive subsystem. PI Snapshot Subsystem adds data to the queue and PI Archive Subsystem
removes data from the queue.

Normally the event queue passes events to the archive as quickly as they arrive, but in some
circumstances PI Archive Subsystem might be busy or unavailable. When this happens, the
event queue stores the data, filling until the archive is again available. This is called archive
queuing.

14 PI Data Archive System Management Guide


PI Data Archive data flow

Archive queuing occurs in the following cases:


• Interface nodes or other data sources produce a burst of events. This might occur when an
interface recovers data after a network outage.
• PI Archive Subsystem becomes busy storing out-of-order events or processing expensive
user queries.
• The operating system or hardware supporting PI Data Archive has a reduced I/O or CPU
capacity. Other applications that run on the PI Data Archive computer or that share the
same hardware host might cause this situation.

PI Data Archive System Management Guide 15


PI Data Archive data flow

16 PI Data Archive System Management Guide


Start and stop PI Data Archive
PI Data Archive runs as a collection of Windows services. These services are typically
configured to start automatically at computer startup. If you need to shut down or restart the
Windows operating system, always stop PI Data Archive first. Otherwise, you could lose data
due to the service timeouts. You could also lose data that is still in memory and not flushed to
disk.

Shutdown events
PI points have a configurable attribute, Shutdown, to determine whether shutdown events are
written. The time stamp of the shutdown event normally represents the actual shutdown time
of PI Data Archive as recorded by PI Snapshot Subsystem. If PI Data Archive shuts down
ungracefully, this time stamp is accurate to within 15 minutes by default.
Valid values for the Shutdown attribute are 1 (On) and 0 (Off). If a point's Shutdown attribute is
1, then PI Shutdown Subsystem writes a shutdown event whenever PI Data Archive shuts
down. Unless you configure points to receive shutdown events, only test points such as
sinusoid and sinusoidu receive shutdown events.
For points collected by remote interfaces that are configured for buffering or high availability
(HA), OSIsoft recommends the default setting of 0 (Off). This is because if you run remote
interfaces with buffering or PI Server collectives, shutdown events are not an accurate
indicator of data loss when PI Data Archive shuts down. With properly configured buffering,
data simply queues up for PI Data Archive while it is shut down, provided the remote interfaces
continue running. Also, if PI Data Archive is part of a collective, shutting down one member has
no effect on the other members' ability to continue receiving and serving data.
Many sites configure points that store laboratory test values so that the lab test points do not
receive shutdown events. Lab values are assumed to be constant between tests. Inserting
shutdown events for these points can be misleading.
Note:
OSIsoft recommends that you do not run interfaces on the same machine as PI Data
Archive. However, if you do use such a configuration, configure these local interfaces for
shutdown events. Unlike most PI Data Archive subsystems, PI Shutdown Subsystem exits
after completion.

Set shutdown events for specific points


Points that receive shutdown events are specified in the PI\dat\shutdown.dat file.
You can edit the shutdown.dat file to restrict shutdown events to certain groups of points. To
specify more than one tag name, use a tag mask. Use the wildcards * and ?. An asterisk (*)
matches all possibilities with any number of characters. The question mark (?) matches a
single character and may be used any number of times.

PI Data Archive System Management Guide 17


Start and stop PI Data Archive

Note:
Do not specify additional tags by appending comma-separated tag masks or by using
additional lines. You can specify only one tag mask. You must specify at least one tag
mask to enable the shutdown system to operate without errors. To prevent all shutdown
events, specify a tag mask that does not match any tag.
You can use other point attributes and values in addition to, or instead of, the shutdown flag.
All conditions are logically combined with AND. If no point attributes are specified, all tags
specified by the tag mask are selected to receive shutdown events.
For example, this configuration file entry selects only tags that start with s, have the location1
attribute set to 0, and the point source set to H. No other tags receive shutdown events:
! tag mask
s*
! point attributes
location1,0
pointsource,H

18 PI Data Archive System Management Guide


Time specifications and considerations
PI Data Archive tracks time according to the Windows clock, including the time zone and
Daylight Saving Time (DST) settings. If the system clock is wrong, PI Data Archive data is
incorrect.
OSIsoft recommends that you check the system clock regularly. If you need to make an
adjustment, adjust the clock only in small increments (for example, one second per minute).
Keep a record of all adjustments you make.
Archive time stamps in PI Data Archive are stored as the number of seconds past January 1,
1970. Two-digit years from 00 through 69 are interpreted as 21st century (2000s). Two-digit
years from 70 through 99 are interpreted as the 20th century (1900s). For example, 70
translates to 1970; 00 translates to 2000; and 37 translates to 2037.
Note:
Time stamps after January 2038 are currently not supported.

Topics in this section


• PI time
• Display time zone information
• Translate time formats

PI time
You can use a special syntax, called PI time, to specify inputs for time stamps and time
intervals. PI time uses specific abbreviations, which you combine to create time expressions.

Topics in this section


• PI time abbreviations
• PI time expressions
• Time-stamp specification
• Time-interval specification

PI time abbreviations
When specifying PI time, you can use specific abbreviations that represent time units and
reference times.
Time-unit abbreviations
Abbreviation Full version Plural version Corresponding time unit
s second seconds Second
m minute minutes Minute
h hour hours Hour
d day days Day

PI Data Archive System Management Guide 19


Time specifications and considerations

Abbreviation Full version Plural version Corresponding time unit


mo month months Month
y year years Year
w week weeks Week

To specify time units, you can specify the abbreviation, the full version, or the plural version of
the time unit, such as s, second, or seconds. You must include a valid value with any time unit.
If specifying seconds, minutes, or hours, you can specify a fractional value, such as 1.25h. You
cannot specify fractional values for other time units.
Reference-time abbreviations
Abbreviation Full version Corresponding reference time
* Current time
t today 00:00:00 (midnight) of the current day
y yesterday 00:00:00 (midnight) of the previous day
sun1 sunday 00:00:00 (midnight) on the most recent Sunday

jun2 june 00:00:00 (midnight) on the current day in June of the current
year
dec DD december DD 00:00:00 (midnight) on the DDth day of December in the
current year
YYYY 00:00:00 (midnight) on the current day and month in year
YYYY
M-D or M/D 00:00:00 (midnight) on the Dth day of month M in the
current year
DD 00:00:00 (midnight) on the DDth day of the current month
1: Use the first three letters as an abbreviation for any day of the week: sun, mon, tue, wed, thu, fri,

or sat.
2: Use the first three letters as an abbreviation for any month of the year: jan, feb, mar, apr, may, jun,

jul, aug, sep, oct, nov, or dec.

PI time expressions
PI time expressions can include fixed times, reference-time abbreviations, and time offsets. A
time offset indicates the offset direction (either + or -) and the offset amount (a time-unit
abbreviation with a value).
For example, PI time expressions can have the following structure:
Structure Example
Fixed time only 24-aug-2012 09:50:00
Reference-time abbreviation only t
Time offset only +3h
Reference-time abbreviation with a time offset t+3h

Include at most one time offset in an expression; including multiple time offsets can lead to
unpredictable results.

20 PI Data Archive System Management Guide


Time specifications and considerations

Time-stamp specification
To specify inputs for time stamps, you can enter time expressions that contain:
• Fixed times
A fixed time always represents the same time, regardless of the current time.
Input Meaning
23-aug-12 15:00:00 3:00 p.m. on August 23, 2012
25-sep-12 00:00:00 (midnight) on September 25, 2012

• Reference-time abbreviations
A reference-time abbreviation represents a time relative to the current time.
Input Meaning
* Current time (now)
3-1 or 3/1 00:00:00 (midnight) on March 1 of the current year
2011 00:00:00 (midnight) on the current month and day in the year 2011
25 00:00:00 (midnight) on the 25th of the current month
t 00:00:00 (midnight) on the current date (today)
y 00:00:00 (midnight) on the previous date (yesterday)
tue 00:00:00 (midnight) on the most recent Tuesday

• Reference-time abbreviations with a time offset


When included with a reference-time abbreviation, a time offset adds or subtracts from the
specified time.
Input Meaning
*-1h One hour ago
t+8h 08:00:00 (8:00 a.m.) today
y-8h 16:00:00 (4:00 p.m.) the day before yesterday
mon+14.5h 14:30:00 (2:30 p.m.) last Monday
sat-1m 23:59:00 (11:59 p.m.) last Friday

• Time offsets
Entered alone, time offsets specify a time relative to an implied reference time. The implied
reference time might be the current clock time or another time, depending on where you
enter the expression.
Input Meaning
-1d One day before the current time
+6h Six hours after the current time

PI Data Archive System Management Guide 21


Time specifications and considerations

Time-interval specification
Time-interval inputs define intervals for collecting or calculating values during a time period.
For example, you might specify a 60-minute interval to compute an hourly average over a 12-
hour period. To specify time-interval inputs, enter a valid value and time unit:
• Positive values define intervals that begin at the earlier time in the period and that finish at
or before the later time in the period.
Start time 2:00:00
End time 3:15:00
Time interval 30m
Returned intervals 2:00:00 to 2:30:00
2:30:00 to 3:00:00

• Negative values define intervals that finish at the later time in the period and that begin at
or after the earlier time in the period.
Start time 2:00:00
End time 3:15:00
Time interval -30m
Returned intervals 2:15:00 to 2:45:00
2:45:00 to 3:15:00

Display time zone information


Procedure
1. Open a command window and navigate to the PI\adm directory.
2. Type:
pidiag -tz

The pidiag utility returns several lines of output, including your time zone names. For
more detailed results, use the pidiag -tz display options.

Topics in this section


• Time zone information and Daylight Saving Time transition rules
• Time zone display options for pidiag -tz
• Display local and UTC time
• Display a different time zone
• Customize standard and Daylight Saving Time changes
• Determine whether a time string is ambiguous
• Specify time zones

22 PI Data Archive System Management Guide


Time specifications and considerations

Time zone information and Daylight Saving Time transition rules


If you do not specify a time zone, pidiag -tz displays the time zone information and Daylight
Saving Time (DST) transition rules that are being used by PI Data Archive. If the file PI\dat
\localhost.tz is present and valid, then the time zone information is from the file.
Otherwise, the information is from the operating system.
StartYear, EndYear, Month, Week, Day, Time, and Offset define the daylight and standard
time transition rules.
The transition rules are:

• StartYear is the first year that the rule is in effect


• EndYear is the last year that the rule is in effect
• Month is the month (1-12) that the rule is applied.
• Week is the week (1-5) that the rule is applied. If Week is 5 and there are only four weeks in
the month, then 5 designates the last week in the month. If Week is -1, then Week is ignored
and day becomes absolute.
• If Week is greater than 0, then Day is the relative day (1-7) that the rule is applied. A Day of 1
represents Sunday, a Day of 2 represents Monday, and so on. For example, a Week of 1 and a
Day of 1 means the first Sunday in April. If Week is -1, then Day is an absolute day (1-31).
• Time is the time in seconds after midnight that the rule is applied.
• Offset is the time in seconds to subtract from standard time to get the local time. For
example, when daylight saving time is in effect, -3600 is subtracted from standard time.
If your time zone does not observe daylight saving time, the output indicates this.
C:\PI\adm> pidiag -tz

TZ environment variable: <not set>


Standard Time Name: US Mountain Standard Time (UMST)
Daylight Saving Time: <not observed>

See Customize standard and Daylight Saving Time changes to change this setting.

Time zone display options for pidiag -tz


When using pidiag -tz to display time zone information, you can include the following
additional options. The syntax is:
pidiag -tz [time_string [time_zone]] [-check | -dump [-brief] | -full]

• time_string [time_zone]
Display the Local and universal time (UT) times in seconds for the specified time string.
With the optional time_zone, displays time zone information and converts the time as if the
specified time zone were in effect.

• -check
Indicates if the time zone settings on your system are invalid. If the time-zone settings are
valid, the command generates no output.

PI Data Archive System Management Guide 23


Time specifications and considerations

• -dump [-brief]
Dumps the entire time zone table, including fall and spring changes in every year. The dump
is in comma-separated variable (CSV) format, which you can load into a spreadsheet with all
time-change information for the local time zone.
With the optional -brief, the output includes the year and spring and fall time changes,
each marked with D or S to denote daylight or standard time.

• -full
Displays additional information about the localhost.tz file, such as the file’s UID, creator,
and creation time. The information is valid only if PI Data Archive successfully loaded
localhost.tz.

Display local and UTC time


To display the Local and UT times (in seconds) for a specified time:

Procedure
1. Open a command window and navigate to the PI\adm directory.
2. Type:
pidiag -tz "timeString"

where timeString is your time string. For example:


pidiag -tz "25-oct-98 1:30:00"

The pidiag utility returns several lines of output, including:


Passed Time: 25-Oct-98 01:30:00* PST Local: 909279000 UTC:909304200

Display a different time zone


To display time-zone information and convert the time as if a specific time zone were in effect,
specify a time string and time zone with pidiag -tz, as follows:
pidiag -tz timeString timezone

For example:
C:\Program Files\PI\adm>pidiag -tz * GMT0BST

# Time Zone name:


# TZ environment variable: GMT0BST
# Bias (offset) from UTC (TAI) time:
0
# January is standard / Northern hemisphere:
1
# Standard Time Name:
GMT
GMT
# Daylight Time Name:
BST
BST
# StartYear, EndYear, Month, Week, Day, Time, Offset
1970, 2006, 4, 1, 1, 7200, -3600
2007, 2038, 3, 2, 1, 7200, -3600
1970, 2006, 10, 5, 1, 7200, 0
2007, 2038, 11, 1, 1, 7200, 0
Passed Time: 22-Feb-17 22:42:27 GMT Local: 1487803347 UTC: 1487803347

24 PI Data Archive System Management Guide


Time specifications and considerations

Customize standard and Daylight Saving Time changes


PI uses an internally constructed table to determine when changes between Standard Time and
Daylight Saving Time (DST) occur. By default, PI builds the table using the single time change
rule available from Windows. However, when the PI\dat\localhost.tz file is present and
valid, PI builds the table using the change rules specified in the file.

Determine whether a time string is ambiguous


Use pidiag -tz to determine if a specific time string is considered ambiguous:

Procedure
1. Open a command window and navigate to the PI\adm directory.
2. Type:
pidiag -tz "timeString"

where timeString is your time string. For example:


pidiag -tz "25-oct-98 1:30:00"

The pidiag utility returns several lines of output.


Passed Time: 25-Oct-98 01:30:00* PST Local: 909279000 UTC:909307800

The asterisk in the above line indicates that this is an ambiguous time string unless you
include the time zone name.

Specify time zones


The PI System can usually determine whether daylight saving time is in effect. If you wish to be
specific, then use the DD-MMM-YY hh:mm:ss.ssss fixed time format and append the time zone.
PI supports both long time zone names (such as Pacific Standard Time) and short time zone
names (such as PST). You can specify either name. Comparisons are not case sensitive. The
following time strings are equivalent:
25-Oct-98 01:30 Pacific Daylight Time
25-Oct-98 01:30 pdt
25-Oct-98 01:30 D

Other commonly used time zone codes include S for standard time, D for daylight time, and
MET for Middle European Time.

Translate time formats


Procedure
1. Open a command window and navigate to the PI\adm directory.
2. Type:
pidiag -t time_stamp [U]

This provides translation between time string formats and internal formats: If time_stamp
starts with 0 (zero) an integer format (seconds since 1-jan-70) is translated to string
representation. pidiag assumes local time, unless you use the U or UTC argument, in which

PI Data Archive System Management Guide 25


Time specifications and considerations

case the argument is taken to be universal time (UTC). If the first character is not 0, the time
argument is treated as time string, absolute or relative, and translated into an integer value.
Both local time and UTC integer values are displayed.

Topics in this section


• String to integer format sample output
• Integer format to string sample output

String to integer format sample output


If you type the following command:
C:\PI\adm>pidiag -t 1-sep

Then you get output that looks like this:


1-Sep-98 00:00:00 PDT - Local: 904608000 UTC: 904633200

If you type the following command:


C:\PI\adm>pidiag -t t+1h

Then you get output that looks like this:


21-Oct-98 01:00:00 PDT - Local: 908931600 UTC: 908956800

If you type the following command:


C:\PI\adm>pidiag -t "*"

Then you get output that looks like this:


21-Oct-98 20:00:10 PDT - Local: 909000010 UTC: 909025210

Integer format to string sample output


If you type the command:
C:\PI\adm>pidiag -t 0909000010

Then you get output that looks like this:


21-Oct-98 20:00:10 PDT - Local: 909000010 UTC: 909025210

26 PI Data Archive System Management Guide


PI Data Archive backups
A backup is a copy of data that you can use in case your original data is damaged or lost.
Backups provide a means of recovery after unintended configuration changes (such as an
accidental point deletion) and database corruption. Generally, the best way to recover data is to
restore a backup that was taken prior to when the issue happened.
In PI Data Archive, backups include archive files and configuration information.

Topics in this section


• PI Data Archive scheduled backup configuration
• View backup history of a PI Data Archive server
• Troubleshooting PI Data Archive backups
• PI Data Archive backup scripts
• How PI Data Archive backup verification works
• Restore PI Data Archive from a backup

PI Data Archive scheduled backup configuration


OSIsoft recommends that you configure an automatic daily backup of PI Data Archive. The PI
Data Archive installation includes a script that you can use to set up a daily backup as a
Windows service, which we refer to as the scheduled backup task. The scheduled backup task
performs an incremental, verified backup each day.
While the scheduled backup task is running, you can access PI Data Archive as usual. For
example, you can create points and push data to the archives. To minimize performance impact
during backups, use the recommended disk configuration. See Recommended disk
configuration for PI Data Archive backups.
The scheduled backup task places the backup files in a directory specified by the Windows
task, which we refer to as the scheduled backup directory. The scheduled backup directory
holds only the most recent verified backup.
In addition to the scheduled backup task, OSIsoft strongly recommends that you use a third-
party backup application to back up the scheduled backup directory to a safe location.

PI Data Archive System Management Guide 27


PI Data Archive backups

Topics in this section


• Recommended disk configuration for PI Data Archive backups
• Configure a PI Data Archive scheduled backup
• PI Data Archive collectives and backups

Recommended disk configuration for PI Data Archive backups


Backups require at least one NTFS partition on the machine where PI Data Archive is installed.
For optimum performance during backups, keep the following files on separate drives:
• The data archive files and event queue
• The paging file of the operating system
• The scheduled backup directory (this drive can be a remote network drive or NAS)
For example, PI Data Archive might be installed on the C: drive, which is usually where the
paging file is located, while the archives and event queue are configured to be on the D: drive,
and the intermediate backup directory is on the E: drive or a remote network drive.
All archives to be backed up must be on the PI Data Archive computer. If the archive to be
backed up is on a remote drive, such as a UNC path, the backup will fail unless the file is
marked read only, and the pibackup service is configured to run as an account that has
appropriate permissions.

Performance during PI Data Archive backups


Any backup on the PI Data Archive computer has the potential to impact performance. You can
largely avoid this impact by using the recommended disk configuration. However, some impact
is unavoidable because CPU resources and file system cache resources are consumed.
Monitor PI Data Archive during a backup to determine how the backup affects archiving rate
and archive reads, and the CPU usage of PI Data Archive. Also, monitor the Windows
Performance Counters Avg Disk Write Queue Length and Avg Disk Read Queue
Length for the Physical Disk performance object. If the disk queue length is greater than one,
then the disk is falling behind.

28 PI Data Archive System Management Guide


PI Data Archive backups

Configure a PI Data Archive scheduled backup


Procedure
1. Determine if you should exclude any archives from the backup.
2. Create the scheduled backup task.
3. Use a third-party backup tool to automate a regular backup of the files in the backup
directory.
If a third-party tool is not a viable option, you can use a script to back up the intermediate
backup directory.
4. To ensure that the scheduled backup task works correctly, run a test backup.

Exclude old archives from backup?


For the following scenarios, skip this section:
• You have recently installed PI Data Archive.
• You are upgrading and you are already doing incremental backups.
If you are upgrading and plan to switch to incremental backups for your nightly backups, follow
the steps in this section.
Before converting to incremental backups, ensure that your first incremental backup is not
extremely large. If you have backed up archives outside of normal scheduled backups, the
Backup Time (as displayed by the piartool -al command) might be listed as Never. These
archives are included in the first incremental backup (or if the archives are marked as read-
only, they are included in every subsequent incremental backup). If you have backed up these
old archives by other means (such as by shutting down the PI Data Archive server and making
a copy of the archive files), consider excluding the old archives from the backup.

Procedure
1. To determine the archives that would be included with the first incremental backup, run the
command:
piartool.exe -backup -identify -type incremental -verbose
2. Examine the list. If you want to exclude any archives from your incremental backup or if any
archives are marked as read only, identify the most recent archive in the list that you want to
exclude. The most recent archive has the most recent End Time (as displayed by the
piartool -al command). Use this end time in the following -identify command.
piartool.exe -backup -identify -type incremental -verbose
-excludeArchivesWithEndTimesOlderThan EndTime
3. Examine the list. It should not include the archives that you excluded. Use the same end time
to modify the command line of the scheduled task that you create in Customize the default
backup.

PI Data Archive System Management Guide 29


PI Data Archive backups

Create the scheduled backup task


PI Data Archive includes scripts for creating the task and performing the backups. The task
backs up files and copies them to the scheduled backup directory. You can configure the backup
directory's name and location and the backup time.

Procedure
1. On the PI Data Archive computer, log in with a Windows account that has administrator
privileges.
2. Open a command prompt window.
3. Change to the PI\adm directory.
For example, if PI Data Archive is installed on the D drive, you would type:
cd /d "%piserver%adm"
4. Select a target directory for your backups, for example e:\pibackup. Ideally, the backup
drive is a separate drive from the system drive or the drive where your archives are stored.
pibackup e:\pibackup -install

This command creates a Windows Scheduled Task named PI Server Backup.

After you finish


Use the backup tool of your choice to back up the pipc directory, which is not included in the
PI Data Archive scheduled backup task. See Configure automatic backup of the PI Data Archive
scheduled backup directory. If no backup tools are available, you can configure the PI Data
Archive scheduled backup task to back up this directory. See Add the PIPC directory to the PI
Data Archive daily backup task.

Topics in this section


• Target directory for backup
• Customize the default backup
• Change the scheduled time for PI Data Archive automated backups

Target directory for backup


When you issue the baseline backup command, you specify the path to the scheduled backup
directory. Here are a few examples of valid paths:
C:\pibackup\
\\myserver\c$\pibackup\
\\myserver\share\pibackup\

We do not recommend UNC paths because the PI Backup Subsystem does not retry if network
errors occur. If you do use a UNC path, you can specify a path to a shared directory on a remote
computer, but you cannot use mapped network drives.

Customize the default backup


After installing PI Data Archive backup as a scheduled task, you can customize the task.

30 PI Data Archive System Management Guide


PI Data Archive backups

Before you start


To make any of these changes, open the Windows Task Scheduler and double-click the PI
Server Backup entry.

Procedure
• Change backup time.
The default time is 3:15 AM.
• Change the Windows user under which the task runs.
By default, the task runs under the System account. If you are using the pisitebackup.bat
script to back up files to a remote computer, then run the scheduled task as a user that has
sufficient privileges to write to the target directory on the remote computer.
• Change the path to the scheduled backup directory.
• If you need to exclude old backups as determined in Exclude old archives from backup?,
append the command line of the scheduled task with the following:
-excludeArchivesWithEndTimesOlderThan EndTime

Change the scheduled time for PI Data Archive automated backups


To change the scheduled time of the automatic backup, edit the Windows task.
Note:
The following procedure applies to Microsoft® Windows® 7 and later. If you're using an
earlier version of Windows, see the Microsoft documentation for Windows Task
Scheduler.

Procedure
1. On the PI Data Archive computer, log on to a Windows account that has administrator
privileges.
2. In Control Panel, open Scheduled Tasks.
3. Double-click the PI Server Backup task.
4. In the Properties dialog box, click the Triggers tab, then click Edit.
5. Specify the settings you want.
6. Click OK.

Configure automatic backup of the PI Data Archive scheduled backup


directory
Procedure
• Use a third-party backup tool to configure regularly scheduled backups of the scheduled
backup directory. The backup should store the files on a different computer from PI Data
Archive.
You can use any backup strategy that is available with the third-party backup program. For
example, you could choose to do a combination of full and incremental backups, full and
differential backups, or a combination of full, incremental, and differential backups.

PI Data Archive System Management Guide 31


PI Data Archive backups

Third-party software reduces your backup administrative tasks. For example, typical third-
party backup software can be configured to discard old backups after a specified period.
Also, IT can typically manage third-party backup software so that the PI system manager
can attend to other tasks.

Why back up the scheduled backup directory?


Backing up the files in your backup directory is a crucial step to safeguarding PI Data Archive.
The backup directory contains only the most recent backup. As new backup files are copied
into the backup directory, the old backup files are overwritten. This means that the backup
directory contains only the most current verified backup. This does not help you if you need to
restore to an older backup.
For example, suppose you discover that two days ago you accidentally deleted a point. You
cannot recover the deleted point from the files in the backup directory because the last backup
occurred after the point was deleted. You need to recover the point from an earlier backup.
Your backups of the PI Data Archive backup directory will provide the backup history that
allows you to restore the point.

Add the PIPC directory to the PI Data Archive daily backup task
If you choose not to use third-party software to back up the files in the pipc directory, you can
configure the scheduled backup task to include them.

Procedure
1. On the PI Data Archive computer, log on to a Windows account that has administrator
privileges.
2. Open a Windows command window.
3. Change to the PI\adm directory: cd %piserver%adm
4. Find the file called pisitebackup.bat.example.

32 PI Data Archive System Management Guide


PI Data Archive backups

5. Rename this file to pisitebackup.bat by removing the .example extension.


This sets up a backup of a default set of files in the pipc directory. This backup runs
immediately after the automated PI Data Archive backup task executes. The backup files are
placed in a subdirectory called sitebackup within the PI Data Archive backup directory.
6. By default, pisitebackup.bat backs up the .bat, .log, .ini, .txt, and .sql files from
the pipc directory. To change which files are backed up, edit the pisitebackup.bat file.

After you finish


Note:
You can edit pisitebackup.bat to include any scripts you want to run immediately
after the scheduled PI Data Archive backup task executes. For more information, read the
instructions in the pisitebackup.bat.example file.

Run a test backup


In this example, the backup directory is assumed to be E:\pibackup\ and the PI Data Archive
directory is assumed to be C:\pi\.

Procedure
1. To monitor messages that are written to the PI Message log during the backup, start PI SMT
and select Operation > Message Logs.
2. In the Windows Task Scheduler, right-click the PI Server Backup scheduled task and select
Run. Files are backed up to the following directories.
◦ Archives are backed up to E:\pibackup\arc.
◦ Files from C:\pi\dat, C:\pi\adm, C:\pi\log, and C:\pi\bin are backed up to E:
\pibackup\dat, E:\pibackup\adm, E:\pibackup\log, and E:\pibackup\bin,
respectively.
3. Monitor the PI Message Log messages from SMT. At the beginning of the backup, you should
see the message Backup operation started. When the backup is complete, you
should see the Backup operation completed successfully message.
Alternatively, to find out if the backup is complete, check the task status in the Windows
Task Scheduler.
4. After the backup is complete, examine the backup log in E:\pibackup. The log name
format is pibackup_dd-MMM-yy_hh.mm.ss.txt. The log file includes the following
information:
◦ Near the beginning of the log, the currently registered archives are listed. This archive list
can be helpful during restore operations. For example, when restoring PI Data Archive, it
is helpful to know at the time of the backup which archive was the primary and which
directories the archives were in.
◦ If the backup is successful, at the end of the log you should see the message
pibackup.bat script completed successfully.
◦ A Verbose File Backup Report indicating which files were copied to the backup
directory.

PI Data Archive System Management Guide 33


PI Data Archive backups

◦ The list of subsystems that were registered for backup and the subsystem version
numbers.
◦ A summary of the backup that looks similar to the following.
Backup in Progress: FALSE
Files Copied: 24
Files Skipped: 36
File Copy Failures: 0
Total File Count: 60
Last Backup Start Pending: 1-Nov-09 03:15:05
Last Backup Start: 1-Nov-09 03:15:26
End: 1-Nov-09 03:15:42
Status: [0] Success
Last Backup Type: INCREMENTAL, VSS, Component Mode
Last Backup Event: BACKUPSHUTDOWN
Last Backup Event Time: 1-Nov-09 03:15:43
Verification Start Time: 1-Nov-09 03:15:42
VSS Supported: TRUE

The type of the backup should be INCREMENTAL. The first incremental backup of a
newly installed PI Data Archive should be equivalent to a full backup. A backup type of
NUMARCH/CUTOFF is possible only if the backup task is left over from an upgrade.
5. Restore the PI Data Archive server from the backup, as described in Restore a backup to an
existing PI Data Archive server, then check the restored server to make sure the backup and
restore were successful.

PI Data Archive collectives and backups


At a minimum, configure backups for the primary server in a PI Data Archive collective. A
collective is not a substitute for a backup.
Consider whether to configure backups for the secondary servers as well as the primary. There
are several good reasons to back up secondary servers.
• Not all configuration information is replicated. Non-replicated data includes tuning
parameters and PI Data Archive message logs. In part, these files can be enumerated by the
piartool -backup -identify -verbose command; the non-replicated components
where the data may differ between the primary and secondary nodes include the timeout
parameters, pimsgss, and pibatch components. However, non-replicated data also includes
customized batch scripts, .ini files, and logs that can be backed up with the
pisitebackup.bat script.
• Database corruption can occur independently on primary and secondary nodes. The
validation step at the end of the backup may, for example, detect corruption on a secondary
node that did not occur on the primary node.
• If the secondary and primary are geographically separated across a slow network, then it
might be more expedient to restore the secondary from a backup rather than reinitializing
from the primary.
The start and end time of archives are not the same on primary and secondary nodes.
Reinitializing a secondary typically requires manual steps to eliminate data gaps. If a secondary
is restored from backup, there are no data gaps.
If you restore a primary PI Data Archive server from a backup, you must reinitialize all
secondary servers from the primary PI Data Archive server. If you restore the primary PI Data
Archive server from a backup of a secondary PI Data Archive server, you must reinitialize the
other secondary servers.

34 PI Data Archive System Management Guide


PI Data Archive backups

View backup history of a PI Data Archive server


Procedure
1. Open PI SMT.
2. In the Servers pane, select the server you want to check.
3. In the System Management Tools pane, select Operation > Backups.
4. In the PI Server drop-down list, select the server you want to examine. The list includes all
the servers selected in the Servers pane.
The Backup History table shows the backup history for the server selected in the PI Server
list. By default, the table lists the last 100 backups and shows a subset of these available
data:
Column Data
Index Number to represent the order in which the backups occurred.
Start Time Time the backup started.
Status Status code and the status code description for each backup.
Files Copied Number of files copied during the backup.
Size Total size of the backup.
Duration Time it took to complete the backup.
File Copy Failures Number of files for which the backup failed.
Total Files Number of files selected for backup.
Type Copy, Incremental, Differential, Full, and Numarch/Cutoff. See PI
Data Archive backup types.
VSS True for VSS backups; False for non-VSS backups.
Note:
PI Server 2015 and later versions only support VSS backups.

Component Mode True for component mode backups; False if not.


Third Party True if a third-party backup application was used to back up PI
Data Archive; False if the PI Backup Subsystem was used.
Initialization Duration Time elapsed before the backup began after the backup request.

Note:
Right-click a column heading to see a complete list of columns you can display.

Topics in this section


• PI Data Archive backup types
• Change the number of backups shown in the Backup History table
• View backup information summary
• View backup details

PI Data Archive System Management Guide 35


PI Data Archive backups

PI Data Archive backup types


The Backup History table might show the following backup types:

• Copy
The backup type for unscheduled backups, that is, those run with the Backups tool.

• Incremental
The backup type for the regularly scheduled PI Data Archive backups.

• Differential
A backup type if you are using third-party backup software to back up PI Data Archive.

• Full
A backup type if you are using third-party backup software to back up PI Data Archive.

• Numarch/Cutoff
The backup type for regularly scheduled backups that were configured on PI Server
versions 3.4.370 or 3.4.375.
Note:
For more information on PI Data Archive back up types, see https://
customers.osisoft.com/s/knowledgearticle?knowledgeArticleUrl=KB01032.

Change the number of backups shown in the Backup History table


To change the number of backups shown in the Backup History table, set the
Backup_MaxHistory tuning parameter.

Procedure
1. Open PI SMT.
2. Under Collectives and Servers, select the server you want to check.
3. Under System Management Tools, select Operation > Tuning Parameters.
4. In the Tuning Parameters tool, click the Backup tab.
5. Double-click Backup_MaxHistory and set the parameter value.

View backup information summary


The Summary fields below the Backup History table contain information about the selected
backup.

Procedure
• Select a backup in the Backup History table to view information about the backup in the
Summary fields below the table:

36 PI Data Archive System Management Guide


PI Data Archive backups
◦ Status
The status code of the backup: either Success or an error code for the error that
occurred.

◦ Method
Information about the backup method:

▪ Type
Backup types include incremental, copy, full, differential, or Numarch/Cutoff (see PI
Data Archive backup types).

▪ VSS/non-VSS
True for VSS backups; False for non-VSS backups.
Note:
PI Server 2015 and later versions only support VSS backups.

▪ Component Mode
Meaningful only for third-party backups. Some third-party backup applications
cannot do component mode backups and do not provide information to PI Data
Archive about the success or failure of the backup.

▪ Third party
Appears if PI Backup Subsystem is not the application used to perform the backup.

◦ Start Time
The time the backup started.

◦ Duration
The time taken for the backup to complete.

View backup details


The Backups tool provides access to details about PI Data Archive backups.

Procedure
• Double-click a backup in the Backup History table to open the Backup Details window. The
Backup Details window shows a summary of backup details and a list of backed up files.

Topics in this section


• Backup details summary
• Backed up file list

Backup details summary


Use the Summary tab in the Backup Details window to view details about the selected backup.
At the top left of the tab, the Index field shows the index number of the backup you are
currently viewing.

PI Data Archive System Management Guide 37


PI Data Archive backups

The index number represents the order in which the backup occurred, relative to the other
backups in the list. Use these options to see details for a different backup:

• Click the arrows on the Index field


• Enter an index number directly in the Index field
• Use the Previous and Next arrows at the top of the window
The Summary tab displays all the information that is included in the Summary area under the
main Backup History table. See View backup information summary for more on these fields.
The Summary tab also provides:

• The following backup statistics for each subsystem and archive included in the backup:

◦ Freeze Start Time


The time at which all subsystems entered a frozen state; if the backup is successful, the
last backup time of archive files is updated with this time stamp.

◦ Freeze Duration Time


Maximum amount of time that the databases could have been frozen (to writes) for a
subsystem that was backed up.

◦ Freeze Transition
Time spent for all subsystems to go from an unfrozen to frozen state.

◦ Initialization Duration
Time elapsed between the issue of the backup request and the start of the backup.
• A list of the subsystems that were available for backup at the time the backup was executed.

Backed up file list


The Backed Up File List tab in the Backup Details window displays summary information and a
list of files that were backed up. For aborted or otherwise unsuccessful backups, any files that
were not backed up are also listed in red.
The summary information consists of:

• Total Files
Number of files selected for backup.

• File Copy Failures


Number of files that should have been backed up and were not.

• Files Backed Up
Number of files that were backed up.

• Unchanged Files for Incremental Backup


Number of files that were not backed up because they were unchanged since the last
backup. This field appears only if the selected backup was an incremental backup. See PI
Data Archive backup types.

38 PI Data Archive System Management Guide


PI Data Archive backups

The table at the bottom of the tab shows lists the backed-up files:
Column Description
File Name The name of the backup file
Source Directory The full pathname of the directory where the backup file is located
Report The action taken or the reason the backup failed
Destination The name of the directory to which this file was backed up
Status A status code: success for a successful backup or an error for an
unsuccessful backup
Size The size of the file in KB
Component Description The name of the component to which the file belongs

You can:
• Click a column heading to sort the list by that column.
• Right-click a column heading to select the columns you want to display.

Troubleshooting PI Data Archive backups


A backup is a copy of data that you can use in case your original data is damaged or lost.
Backups provide a means of recovery after unintended configuration changes (such as an
accidental point deletion) and database corruption. Generally, the best way to recover data is to
restore a backup that was taken prior to when the issue happened.

Topics in this section


• View PI Data Archive backup logs and messages
• Common issues with backups
• PI Data Archive backup failure due to offline subsystem
• Perform an on-demand PI Data Archive backup
• Export PI Data Archive backup history

View PI Data Archive backup logs and messages


Check the following log files for error messages:

• Backup script log


The backup script log is written to the target directory of the backup with a name of the
form pibackup_dd-mmm-yy_hh.mm.ss.txt. For example:
pibackup_5-Aug-05_14.16.22.txt.
• PI message log
To display all error messages between the start and end time of a backup, use a command of
the form:
pigetmsg -sl E –st starttime –et endtime

PI Data Archive System Management Guide 39


PI Data Archive backups

If any errors occur during a backup, the output of this command is automatically dumped to
the backup script log.
To display all messages related to backup, use a command of the following form:
pigetmsg -src pibackup –st starttime –et endtime

To display only those messages from the PI Backup subsystem itself, use a command of the
following form:
pigetmsg -pr pibackup –st starttime –et endtime
• Windows application event log
Look for messages from VSS and COM+ event sources.
• Windows system event log
Look for messages from VOLSNAP and NTFS event sources.

Common issues with backups


Backups may fail for the following reasons:

• Sometimes the system can get into a state where the ole32.dll becomes unregistered. If
ole32.dll is unregistered, backups do not work. To resolve this issue, re-register
ole32.dll with the following command:
regsvr32 ole32.dll
• Backups can fail if either of the following services is disabled:
◦ Microsoft Software Shadow Copy Provider
◦ Volume Shadow Copy
◦ COM+Event System
• Typically, the Volume Shadow Copy service should not be running. It is started on demand
whenever it is needed. If the service is running, it may be stuck in a bad state. To stop the
service, enter the following command:
net stop "Volume Shadow Copy"

If this command does not work, use Windows Task Manager to end the VSSVC.exe process.
• Backups of PI Data Archive have been known to fail when the OfmProvider from St. Bernard
software is installed on the PI Data Archive computer. To determine if this software is
installed, run the vssadmin list providers command and look for OfmProvider in the
output.
• All archives to be backed up must be on the PI Data Archive computer. If the archive to be
backed up is on a remote drive, such as a UNC path, the backup will fail unless the file is
marked read only, and the pibackup service is configured to run as an account that has
appropriate permissions.
• Backups require at least one NTFS partition on the machine where PI Data Archive is
installed.

PI Data Archive backup failure due to offline subsystem


When a subsystem registers for backup, the subsystem must remain online during the next
backup or else the backup will fail with the following error:

40 PI Data Archive System Management Guide


PI Data Archive backups

Backup start failed, Status: [16896] RPC Resolver offline for a subsystem to
which the backup subsystem is communicating. Find -10733 error in message log to
identify problematic RPC

Two messages will appear in the PI Data Archive message log with the -10733 error similar to
the following:
E 19-Oct-09 13:54:57 pibackup (5059)
>> Callback failed for <pibatch> for the IDENTIFY event. Error [10733]
PINET: RPC Resolver is Off-Line.
E 19-Oct-09 13:54:57 pibackup (5061)
>> Error [10733] PINET: RPC Resolver is Off-Line., failed to send the IDENTIFY
backup event to pibatch

To fix the problem, you can either start the subsystem that is not running, or you can do the
following, if the subsystem was purposefully stopped:
1. Run the command piartool -backup -query and make note of the subsystems that are
currently registered for backup.
2. Restart PI Backup Subsystem.
3. Wait for the previously registered subsystems to register for backup again, with the
exception of the problematic subsystem. Subsystems may take up to 5 minutes to re-register
for backup after the backup subsystem has been restarted.

Perform an on-demand PI Data Archive backup


Use the Backups tool in SMT to run on-demand backups of PI Data Archive for testing and
troubleshooting. On-demand backups run in component mode.
Note:
Do not use the Backups tool as a substitute for scheduled backups. Your daily backups
should be set up as a Microsoft Windows scheduled task.

Before you start


To back up PI Data Archive, users must have read and write access permissions in the
PIBACKUP table. Use the PI SMT Database Security tool to provide this access to users.

Procedure
1. In the Backups window, select the data server from the PI Server list.
2. Click Backup Now .
3. In the server Backup window, select the PI Data Archive components to back up.
As you make a selection, the right side of the window shows the list of files that will be
backed up.
4. In the Backup Location field, enter or browse to the target directory path.
You can specify a UNC or a local path on the server that you are backing up.
Note:
If you are not running PI SMT on the same PI Data Archive server that you are backing
up, then you cannot use the browse button unless you have Windows administrator
access to that server.
5. Click Backup.

PI Data Archive System Management Guide 41


PI Data Archive backups

Results
The Backup History window shows the backup details, including a backup's progress and
whether it was successful or aborted.

Export PI Data Archive backup history


You can use the Backups tool to export a backup history report to an XML file.

Procedure
1. Click the Export Backup Reports button to open the Save Backup History As window.
2. Browse to the save location.
3. Enter the file name.
4. Click Save.

PI Data Archive backup scripts


PI Data Archive backup scripts are located in the PI\adm directory.

• pibackup.bat
Use this script to launch a backup or to install a backup as a scheduled task.

• pibackuptask.bat
This script calls pibackup.bat and redirects the standard output to a log file.

• pisitebackup.bat
This custom backup script does not exist by default.

• pintbackup.bat
This custom backup script does not exist by default and typically should not be
implemented unless you have upgraded PI Data Archive.

• pibackup_3.4.370.bat
PI Data Archive installation creates this script only when upgrading from 3.4.370 to 3.4.375
or greater.
With the exception of installing a backup task with pibackup.bat, you do not need to run any
of these backup scripts directly.
Note:
If the PI AF server is installed on the same computer as the PI Data Archive server, then
an additional script, called afbackup.bat, is installed in the pipc directory (pipc\AF
\sql).

Topics in this section


• pibackuptask.bat
• pibackup.bat
• pisitebackup.bat

42 PI Data Archive System Management Guide


PI Data Archive backups

• pintbackup_3.4.370.bat
• afbackup.bat

pibackuptask.bat
The scheduled backup task calls the pibackuptask.bat script to launch the backup. The
script calls pibackup.bat and redirects the standard output to a backup log. The backup log is
written to the target directory of the backup and the log file has a name of the form:
pibackup_dd-mmm-yy_hh.mm.ss.txt

For example:
pibackup_5-Aug-05_14.16.22.txt

pibackup.bat
This script is used to install a backup as described in Create the scheduled backup task. The
pibackup.bat script performs the actual backup of PI Data Archive and calls the
pisitebackup.bat script after backing up. When the backup task runs, the
pibackuptask.bat script is called directly, which itself then calls pibackup.bat.
The pibackup.bat script starts the backup of PI Data Archive by running a single piartool
-backup command.
After you run pibackup.bat to set up the backup service, you do not need to run it directly
again. To launch a backup prior to its scheduled time, open the Scheduled Tasks Windows
control panel and run the PI Server Backup scheduled task from there. To run a manual backup
(one that does not change the last backup time for your scheduled backups) use the Backups
tool in PI SMT. For more information, see Perform an on-demand PI Data Archive backup.
Note:
Do not directly customize the pibackup.bat script. This script is overwritten on PI Data
Archive upgrades.

pisitebackup.bat
After the backup of PI Data Archive has completed, pibackup.bat calls pisitebackup.bat,
provided that pisitebackup.bat exists.
The pisitebackup.bat script can be used to:

• Back up site-specific files.


• Copy files from the backup directory to a safe location. This should be done only if a third-
party backup program is not available.
• Trigger a backup of the backup directory with a third-party backup program.
The pisitebackup.bat does not exist by default. However, PI Data Archive installs the
pisitebackup.bat.example file to the PI\adm\ folder. By simply removing the .example
extension, the script backs up all files ending in .bat, .log, .ini, .txt, and .sql under the
32-bit and 64-bit PIPC home directories. If you want to backup any other files or do any other
task, you must customize the script. Customization instructions are in the
pisitebackup.bat.example file itself.

PI Data Archive System Management Guide 43


PI Data Archive backups

Note:
The pisitebackup.bat script is not overwritten when PI Data Archive is upgraded.

pintbackup_3.4.370.bat
The pibackup_3.4.370.bat script is created by the PI Data Archive installation only when
upgrading from 3.4.370. The pibackup_3.4.370.bat script maintains the behavior of
backups from version 3.4.370 so that a user’s site-specific backup is not broken by the upgrade.

afbackup.bat
The pibackup.bat script calls afbackup.bat, if it exists. Since afbackup.bat is part of the
AF SQL database scripts, it exists on the PI Data Archive computer only if the AF SQL database
scripts is installed on the same computer as PI Data Archive. The afbackup.bat script is
installed in the pipc directory under pipc\AF\sql.
By default, the afbackup.bat script backs up an instance of SQL Server called ./sqlexpress.
If the PI AF database is called sqlexpress and is located on the PI Data Archive computer,
then the scheduled backup task backs up that database. The PI AF database backup is written
to:
pibackupdir\AF\

where pibackupdir is the backup directory passed to the pibackup.bat script.


You can edit the afbackup.bat file to back up a different SQL Server instance, such as
sqlserver. The afbackup.bat script is a site-specific file. If you upgrade PI Data Archive, this
file is not overwritten.

How PI Data Archive backup verification works


By default, the PI Data Archive backup task performs an incremental backup of PI Data Archive
files.
The PI Backup subsystem attempts to maintain a consistent backup without corrupt or
partially copied files in the PI Data Archive backup directory. It does this by temporarily
copying files to a precommit directory before moving the files to their final destination. This
precommit directory is a subdirectory under the PI Data Archive backup directory. If the
backup is aborted, if the PI Backup subsystem crashes, or if the files in the precommit
directory do not pass verification, then the files in the precommit directory are not moved to
their final destination. Therefore, the last good backup should always be available.
The backup process works like this:
1. The files corresponding to the components selected for backup are copied to a precommit
directory.
2. The primary archive and the files that correspond to the base and snapshot subsystems are
verified in the precommit directory.
3. If verification passes, the files are moved to the backup directory. Any files with the same
name that already exist in the backup directory are renamed before the move operation.
4. If all move operations are successful, the renamed files are deleted.

44 PI Data Archive System Management Guide


PI Data Archive backups

If the backup fails verification, the files are left in the precommit directory, and the reason for
the failed backup is written to a pibackupverify_*.log file in the PI Data Archive backup
directory. If successive backups fail verification, files will start accumulating in the precommit
directory. After the next successful backup, all files are copied to their final destination.
The following table shows commands that the PI Backup subsystem spawns to perform the
verification.
Component Verification Command
Archive components pidiag -archk
pibasess pibasess -verifydb
pibasess pidiag -fb

Although only the primary archive is verified by default, the number of archives to be verified
can be set with the BackupVerification_NumArch tuning parameter. Alternatively, all
verification can be suppressed by setting the BackupVerification tuning parameter to 0.
Although the last good backup should not be corrupt, it is still imperative to backup the PI Data
Archive backup directory, preferably with third-party backup software. For example, if you
accidentally delete a PI point and subsequently perform a backup, the PI point is deleted in the
last good backup as well. To retrieve the deleted PI point, you might need to restore a previous
backup. If you are not keeping multiple backups of your PI Data Archive backup directory, there
will be no means to do this restore.

Restore PI Data Archive from a backup


You can restore a PI Data Archive server to the same computer that it was running on or a new
computer.

Topics in this section


• Restore a backup to an existing PI Data Archive server
• Restore a PI Data Archive backup to a new computer

PI Data Archive System Management Guide 45


PI Data Archive backups

Restore a backup to an existing PI Data Archive server


This section explains how to restore a PI Data Archive server from a backup. Follow these
instructions to restore the PI Data Archive server to the same computer that it was running on.

Procedure
1. Isolate your PI Data Archive server from the network.
For more information, see Isolate a PI Data Archive server from incoming process data.
2. Stop PI Data Archive.
\%PISERVER%\adm\pisrvstop.bat
3. Delete the following file:
\%PISERVER%\dat\PIModuleUnitDb.dat
This file is automatically regenerated when you restore from backup.
4. Restore the backup to a temporary directory, such as C:\TempRestoreDir.
For example, if you back up your backup directory with a third-party backup application,
restore the desired backup to C:\TempRestoreDir. Alternatively, if you are restoring the
latest backup, you can restore the PI Data Archive server directly from the latest backup
directory. This procedure assumes that you have restored the desired backup to a folder of
the name C:\TempRestoreDir.
5. Copy the files from C:\TempRestoreDir\dat to %PISERVER%\dat.
6. Copy the files from C:\TempRestoreDir\adm to %PISERVER%\adm.
7. Copy the files from C:\TempRestoreDir\bin to %PISERVER%\bin.
Note:
Do not copy executable files with extension .exe.
8. Copy the files from C:\TempRestoreDir\log to %PISERVER%\log.
9. Copy the archive files from the C:\TempRestoreDir\arc directory in your backup folder
to their original location on PI Data Archive.
If you are not sure where your archive files were located on PI Data Archive, look in the
backup log file in C:\TempRestoreDir\. The log contains the archive list at the time of the
backup.
Because you are restoring to an existing server, you do not have to restore all archives. At a
minimum you must restore the primary archive. Restore other archives as needed.
10. If a site backup was performed (if, for example, C:\TempRestoreDir\sitebackup exists),
then copy the files from the site backup directories to the %PIHOME% directory.
11. Restart PI Data Archive.
12. Restore the PI Data Archive connection to the network.
13. Use the MDB to AF Synchronization tool in PI SMT to check the status of the synchronization
between MDB and AF. See Tools for editing PI AF and PI MDB objects.
14. If MDB and AF are out of sync, then use the MDB to AF Synchronization tool to reset MDB.

46 PI Data Archive System Management Guide


PI Data Archive backups

Isolate a PI Data Archive server from incoming process data


Isolate the primary PI Data Archive server from all incoming process data, from client
applications such as PI ProcessBook, and from other members of the collective.
During upgrade, users and applications fail over to another member of the collective. (These
isolation methods have no effect on communication between PI Data Archive and PI AF server.)
To isolate a PI Data Archive server:

• Use a Windows firewall or other commercial firewall to block port 5450.


• Set up a PI Data Archive firewall with the Firewall tool in the PI System Management Tools
(PI SMT).

Restore a PI Data Archive backup to a new computer


This procedure guides you through restoration of a complete PI Data Archive server from
backup and the original installation disk. This is suitable for cases of disk crashes or disasters
of similar magnitude.

Before you start


This procedure assumes that you are restoring PI Data Archive on a computer where PI Data
Archive was never previously installed. You need to know the following information about the
PI Data Archive installation that you are restoring:
• The version of the PI Data Archive server that you are restoring (such as PI Server 2012).
• The full directory path, including drive letter, for the PI Data Archive installation that you
are restoring (such as C:\%PISERVER%).

Procedure
1. Change the computer name of the new computer to the name of the old PI Data Archive
computer. Restart the computer.
2. Restore the backup to a temporary directory, such as C:\TempRestoreDir.
For example, if you have been backing up your backup directory with a third-party backup
application, restore the desired backup to C:\TempRestoreDir. Alternatively, if you are
restoring the latest backup, you can restore the PI Data Archive server directly from the
latest backup directory. This procedure assumes that you have restored a previous backup
to a folder of the name C:\TempRestoreDir.
3. Copy the installation kit to the new computer.
The installation kit should be for the same version of the PI Data Archive server as the
version you are restoring. Do not try to upgrade PI Data Archive as part of a restore.
Note:
If you are restoring an old backup, use the PI Data Archive server version that was
installed at the time that the backup was taken. The version is typically found in the
backup log, which should have been restored to C:\TempRestoreDir.
4. Disconnect the computer from the network.
This step ensures that data is not lost from buffered interfaces in subsequent steps.

PI Data Archive System Management Guide 47


PI Data Archive backups

5. Run the PI Data Archive installation kit. Install on the same drive letter and directory path
as on the old PI Data Archive computer.
6. Verify that the PI Data Archive computer is disconnected from the network.
7. Start PI Data Archive.
8. Confirm that PI Data Archive started up correctly and then stop PI Data Archive.
This accomplishes the "run once" functions performed after an installation. Since the PI
Data Archive computer is disconnected from the network at this point, data is not lost from
buffered server nodes.
9. Using Windows Explorer or the copy command, restore all files from the C:
\TempRestoreDir\dat\ directory to the new %PISERVER%\dat\ directory.
10. Restore all the message log files (pimsg_xxxxxxx.dat) from the C:\TempRestoreDir
\log\ to the %PISERVER%\log directory.
11. Restore all files from the C:\TempRestoreDir\adm\ directory to the new %PISERVER%
\adm\ directory.
12. Restore all files from the C:\TempRestoreDir\bin\ directory to the new %PISERVER%
\bin\ directory.
13. Restore the archives from the C:\TempRestoreDir\arc\ directory to the same directory
that they were installed on the old PI Data Archive computer. You can determine the
directories from the archive list in the restored backup log.
If you restore the archives to a different directory, you must also use PI SMT to register the
primary archive in the new location (Operation > Archives). If you are uncertain which of
the backed up archives is the primary archive, then examine the archive dates. The primary
should have the latest start date and an end date of Current time.
14. Start PI Data Archive.
15. Register additional archives in PI SMT as needed.
16. Use piartool -al and the client tools (such as PI DataLink) to verify that all the data has
been recovered. Run the clients locally, since the PI Data Archive computer is isolated from
the network. If the data is intact, then the restoration is complete.
Caution:
Failing to perform this step before exposing the restored server to buffered data could
cause data loss.
17. Connect PI Data Archive to the network. Verify it is reachable from clients on the network.
Monitor all buffered interface nodes.
18. Use the MDB to AF Synchronization tool in PI SMT to check the status of the synchronization
between MDB and AF.
19. If MDB and AF are out of sync, then use the MDB to AF Synchronization tool to reset MDB.

48 PI Data Archive System Management Guide


PI points in PI Data Archive
Points, sometimes called tags, are the basic building blocks of a PI System because you use
them to track the events that comprise your data history. When system managers or OSIsoft
field services engineers install PI Data Archive, they create a PI point for every source of data
that the PI System must track. PI Base Subsystem stores points and their attributes in the point
database.

Topics in this section


• Case sensitivity
• Point classes and attributes
• Find malfunctioning points
• Create points
• Deleting and decommissioning points
• Change PI point type
• Modification of PI point classes
• Digital state sets

Case sensitivity
The PI System preserves the case of all strings, such as point and digital state names, but
searches are not case sensitive. For example, a string entered as BatchStart is stored exactly as
entered. A search for "batchstart" would return "BatchStart".

Point classes and attributes


Point attributes specify how and when the PI System collects data from a particular data
source. For example, attributes determine how frequently a point gets new values, a point's
data type (such as integer or string), and who can view or edit a point.
A point class represents the schema or template of a point. It determines what attributes you
can define for a point of that type. A point class is essentially a group of point attribute sets.
Each attribute set consists of a group of individual attributes. Point class is assigned when the
point is created. The default point class is Base point class.
No two attribute sets within a point class can contain the same attribute. The Point Database
has several different point classes, such as Base and Classic. The structure of the Classic point
class is depicted in the following figure.

PI Data Archive System Management Guide 49


PI points in PI Data Archive

You can create, edit, and delete point classes and attribute sets. Editing and deleting point
classes and attribute sets is rarely necessary and can pose risks.

Topics in this section


• Predefined point classes
• Predefined attribute sets
• Base class point attributes
• Classic point class attributes
• Built-in attributes
• System-assigned attributes

Predefined point classes


The following table lists predefined point classes.
Point class Attribute sets that make up the point class
Alarm base
alarmparam

Base base
Classic base
classic

50 PI Data Archive System Management Guide


PI points in PI Data Archive

Point class Attribute sets that make up the point class


SQC_Alarm base
sqcalm_parameters

Totalizer base
totals

Predefined attribute sets


When you create a point you must, at a minimum, name the point. If you do not assign values to
all other attributes, PI Data Archive uses the default values.
Note:
Programmatic access to some attributes might be limited or unavailable from the PI API.

Topics in this section


• alarmparam
• base
• classic
• sqcalm_parameters
• totals

alarmparam
Attribute Type Default value
action1 String
action2 String
action3 String
action4 String
action5 String
AutoAck String yes
ControlAlg String
ControlTag String
Deadband Float32 0
Options String
ReferenceTag String
Srcptid Int32 0
test1 String
test2 String
test3 String
test4 String
test5 String

PI Data Archive System Management Guide 51


PI points in PI Data Archive

Attribute Type Default value


txt1 String
txt2 String
txt3 String
txt4 String
txt5 String

base
For descriptions of each of these attributes, see Base class point attributes.
Attribute Type Default value Limits
Archiving BYTE 1 ON, OFF, 1, or 0
Changedate Timestamp 31-Dec-69 System-assigned
16:00:00
Changer String piadmin System-assigned
Compdev Float32 0.2
Compmax Uint32 28800
Compmin Uint16 0 0 ≤ x ≤ 65535
Compressing BYTE 1 ON, OFF, 1, or 0
Creationdate Timestamp 31-Dec-69 System-assigned
16:00:00
Creator String piadmin System-assigned
Descriptor String
DisplayDigits BYTE -5 -20 ≤ x ≤ 10
EngUnits String
Excdev Float32 0.1
ExcMax Uint32 600
ExcMin Uint16 0 0 ≤ x ≤ 65535
ExDesc String
Future UBYTE 0
PointSource String Lab
PointType String Float32
Scan BYTE 1 ON, OFF, 1, or 0
Shutdown BYTE 1
Span Float32 100. x³0
Step BYTE 0
TypicalValue Float32 50. Zero ≤ x ≤ (Zero + Span)
Zero Float32 0.

52 PI Data Archive System Management Guide


PI points in PI Data Archive

classic
Attribute Type Default value Limits
Convers Float32 1.
Filtercode Int16 0
InstrumentTag String
location1 Int32 0
location2 Int32 0
location3 Int32 0
location4 Int32 0
location5 Int32 0
Squareroot Int16 0 On, Off, or 0 ≤ x ≤ 10
Srcptid Int32 0
Totalcode Int16 0
userint1 Int32 0
userint2 Int32 0
userreal1 Float32 0.
userreal2 Float32 0.

sqcalm_parameters
Attribute Type Default value
AutoAck String yes
ChartType Int32 0
ClearOnLimitChange String true
ClearOnStart String false
CLTag String
CommentTag String
LCLTag String
LSLTag String
Mixture String
OneSideofCL String
Options String
OutsideControl String
OutsideOneSigma String
OutsideTwoSigma String
PIProductLimits String no
ProductTag String
ReferenceTag String
ResetTag String

PI Data Archive System Management Guide 53


PI points in PI Data Archive

Attribute Type Default value


SQCAlarmPriority Int32 0
Srcptid Int32 0
Stratification String
TestStatusTag String
Trend String
UCLTag String
USLTag String
WaitOnLimitChange String false

totals
Attribute Type Default value
CalcMode String timeweighted
CompValue String ON
Conversion Float32 1
EventExpr String
FilterExpr String
Function String Total
MovingCount Int16 2
Offset String +0m
Offset2 String +0m
Options String
PctGood Float32 85
Period String +1h
Period2 String +2m
RateSampleMode String natural
ReportMode String Running
Srcptid Int32 0
TotalCloseMode String clock
Zerobias Float32 0

Base class point attributes


The Base class is a common set of attributes that all other point classes include. Some of these
attributes can be changed only by the system. These attributes are described in System-
assigned attributes.

Topics in this section


• Archiving
• Compressing

54 PI Data Archive System Management Guide


PI points in PI Data Archive

• CompDev, CompDevPercent, CompMax, and CompMin


• Descriptor
• DigitalSet attribute
• DisplayDigits
• EngUnits
• Extended descriptor (ExDesc)
• ExcDev, ExcDevPercent, ExcMax, and ExcMin
• Future
• Name
• NewTag
• Point and Data security
• PointSource
• PointType
• PtClassName
• Scan flag
• Shutdown flag
• SourceTag and data output to other systems
• Span
• Step attribute in PI points
• Tag
• TypicalValue
• Zero

Archiving
The Archiving attribute must be set to ON (1) for a point to be archived. This flag can be set to
OFF (0) to stop archiving of a point.

Compressing
Turns compression on (when set to 1) or off (when set to 0). Set compression to On for most
points. Set compression Off for laboratory and manually entered tags, so that every value sent
to the snapshot is saved in the archive.
Compression affects digital points, since a new value is recorded only when the current value
changes. Points of types Blob and string have a similar behavior; new events pass compression
only when the value changes. For Blob events, any change is significant.

PI Data Archive System Management Guide 55


PI points in PI Data Archive

CompDev, CompDevPercent, CompMax, and CompMin


PI Data Archive uses compression specifications to filter the data that is passed from the
snapshot to the archive. By filtering out unneeded data, you get more efficient archive storage.
While exception reporting filters data with a simple deadband method, compression testing
filters data with a more complex method that follows the slope of the data (known as the
swinging-door compression algorithm). When a new snapshot arrives, the previous one is
evaluated according to the compression specifications to determine if it is a significant event.
Significant events are sent to the event queue while insignificant events are discarded. For
more information, see Compression testing.
You can specify the following compression-testing attributes.
Specification Attribute Description
Compression CompDev Specifies the compression deviation in the point's
deviation engineering units. Typically, set CompDev to the precision of
the instrument.
CompDevPercent Specifies the compression deviation as a percent of the
point's Span attribute.
A reasonable starting point is one or two percent of Span for
transmitters and 0.5 to 1.0 degrees for thermocouples. Look
at trend displays to find points for which the reproduction of
the data is not acceptable. The goal is to filter out instrument
and process noise and still record significant process
changes. The effect of changing the compression deviation is
not predictable.
When you change CompDev or CompDevPercent, the other is
automatically updated to be compatible. If you changed both
at once, CompDevPercent overrides CompDev.
For non-numeric tags, CompDev and CompDevPercent are set
to zero and ignored.

Compression CompMax Specifies the maximum time in seconds between events in the
maximum archive. If the time since the most recent snapshot event is
greater than or equal to the point's CompMax value, the
current snapshot value is recorded in the archive. This
attribute is usually set to one value for all points in the
system. The recommended maximum time specification is 8
hours. Duplicate values are archived if the elapsed time
exceeds CompMax.
Note:
The CompMax specification does not guarantee that a
value will be written to the archive within a certain
time. The archive waits for events to be sent to it. It
does not check to see if a point has timed out. It does
not create new values.

56 PI Data Archive System Management Guide


PI points in PI Data Archive

Specification Attribute Description


Compression CompMin Specifies the minimum time in seconds between events in the
minimum time archive. If the time since the last recorded event is equal to or
greater than the point's CompMin value, the current snapshot
value is recorded in the archive. For any point coming from an
interface that does exception reporting, set CompMin to zero.
Typically, you use CompMin to prevent an extremely noisy
point from using a large amount of archive space. For a data
acquisition system with a slow scan time, this parameter is
not important.

Descriptor
The Descriptor is a text field that appears on various client application displays and can be
used in reports. It can be of any length up to 65,535 characters. When this value is read through
the PI API it is truncated to 26 characters.
Some interfaces use the descriptor for tag configuration on external system. Having quotes or
wild card characters might lead to confusion when these attributes are passed to other
applications.

DigitalSet attribute
The DigitalSet attribute specifies the name of the digital state set associated with the tag (see
Digital state sets). This attribute applies to digital type tags only. It is ignored for all other types
of tags.
There is a special digital state set called the System digital state set (see The SYSTEM digital
state set). All tags, regardless of type, are associated with the System digital state set.

DisplayDigits
The DisplayDigits attribute controls the format of numeric values on screens and in reports:
• Zero or a positive number indicates the number of digits to display to the right of the
decimal point.
• A negative number indicates the number of significant digits to display. In this case, the
absolute value of DisplayDigits is the number of significant digits.
The default value of DisplayDigits is -5. The minimum value is -20, and the maximum is 10.
The following table shows how a value of 23.45 would appear on the screen for different values
of DisplayDigits:
DisplayDigits Format
3 23.450
2 23.45
1 23.5
0 23
-1 2E+001

PI Data Archive System Management Guide 57


PI points in PI Data Archive

DisplayDigits Format
-2 23
-4 23.45
-5 23.450

EngUnits
The Engineering Unit string describes the units of the measurement. Note that PI Data Archive
does not interpret the engineering units, this string is simply a label.
You can a string of any length, however, the PI API retrieves only the first 12 characters. The PI
SDK does not truncate the string.
Examples include:
DEGF
Degrees Centigrade
Gal/Min
Gallons Per Minute
' " Hg

Engineering Unit strings are case preserving, but not case sensitive on search. The system
trims leading and trailing blanks during input.

Extended descriptor (ExDesc)


The extended descriptor is a text field of any length. It is typically used to provide additional
information for documentation. Several interfaces use the ExDesc attribute to encode
additional configuration information. The ExDesc field varies from interface to interface. See
your interface documentation to determine whether the interface supports this capability.

ExcDev, ExcDevPercent, ExcMax, and ExcMin


Most interface programs use exception reporting to specify which events to send to the PI
Server and which to discard. For more information, see Exception reporting. See your interface
documentation to determine whether the interface supports this capability.
You can specify the following exception-reporting attributes.

58 PI Data Archive System Management Guide


PI points in PI Data Archive

Specification Attribute Description


Exception ExcDev Specifies (in the point's engineering units) how much a point
Deviation value may differ from the previous value before the interface
reports the new value to PI Data Archive. Typically, you set
ExcDev to a slightly smaller value than the precision of the
instrument system.
ExcDevPercent Specifies the exception deviation in percent of Span rather
than in engineering units. A typical value is 1% of Span.
However, if the Span attribute is set incorrectly, your
exception reporting will also be incorrect.
When you change ExcDev or ExcDevPercent, the other is
automatically updated to be compatible. If you change both
attributes at once, ExcDevPercent overrides ExcDev.
For digital, string, and Blob tags, ExcDev and
ExcDevPercent are set to zero and ignored.

Exception ExcMax Specifies the maximum time (in seconds) between events
Maximum that the interface reports to PI Data Archive. After the
specified ExcMax time elapses, the interface sends the new
value to PI Data Archive, regardless of whether the new value
is different from the last reported value. For example, it is
possible for the incoming data to be a single value for many
days. If ExcMax is set to 600 seconds (10 minutes) then a
value is not discarded due to exception if the previous event
time stamp was more than 10 minutes before that.
Exception ExcMin Specifies the minimum time (in seconds) between events that
Minimum the interface reports to PI Data Archive. For example, if
ExcMin is 5, the interface discards any values collected
within five seconds of the last reported value. Typically, you
set ExcMin to zero.

Note:
• Exception reporting parameters are used by interfaces only; they are not used by the
PI Server subsystems.
• Some interfaces do not support exception reporting.

Future
When set to Allowed (1), specifies that the point is intended to store future data.
When this attribute set to Disallowed (0), the point is considered "historical". Historical points
reject data with time stamps that are greater than 10 minutes beyond the current time.
Once a point is created, you cannot change this attribute.
For more information, see Future PI points.

Name
The Tag attribute, which specifies a point's unique name, appears as "Name" in some
applications, such as PI SMT and PI Builder. For details, see Tag.

PI Data Archive System Management Guide 59


PI points in PI Data Archive

NewTag
The NewTag attribute is used for renaming tags.

Point and Data security


To configure security for point attributes and point data, use the Point Security and Data
Security attributes.
You can set point security access permissions for any PI Identities, PI Users, and PI Groups.
For more information, see Set access permissions.

PointSource
The PointSource attribute is a string that associates a tag with an interface or PI application. An
interface uses the point source to retrieve all its points.
The SMT Point Source Table tool lists the currently used point sources.
Avoid using these characters as point sources:
• % (percent)
• ? (question mark)
• * (asterisk)
• _ (underscore)

PointType
The PointType value is assigned when the point is created. For details on editing this value,
see "Change PI point type." in Live Library (https://livelibrary.osisoft.com)
Point Type Used for points with
Digital Values that can only be one of several discrete states, such as ON/OFF and Red/
Green/Yellow.
Int16 Integer values between 0 and 32,767 (15-bit unsigned integers).
Int32 Integer values between -2147450880 and 2147483647 (32-bit signed integers).
The PI System reserves the lowest 32,767 values of the 32-bit range for digital
states.
Float16 Floating point values, scaled. The accuracy is one part in 32,767.
Float32 Single-precision floating-point values, not scaled.
Float64 Double-precision floating-point values, not scaled.
String String data of up to 972 characters if annotated, 976 otherwise.
Blob Any type of binary data up to 972 bytes if annotated, 976 otherwise.
Timestamp Any time/date in the range 1-jan-1970 to 1-Jan-2038 Universal Time (UTC).

Topics in this section


• Point types

60 PI Data Archive System Management Guide


PI points in PI Data Archive

• Attributes that depend on point type

Point types
For points collected by interfaces, use the point type that most closely matches the point type
in the source system.
For accumulators and other high precision values, use the higher precision point types: Float32
or Float64.
The higher precision point types require more disk space for each stored value. Float16 points
use 16 bits or 2 bytes per value. Float32 and Float64 use 4 and 8 bytes per value, respectively.
Int16 and Int32 values use 2 and 4 bytes, respectively. Int16 supports numbers from 0 to
32,000.

To store negative integers, select the Int32 point type.


We recommend using Float32 as the default type for floating point data. Float16 can reduce the
amount of I/O, but this is significant only on very large data retrievals, such as yearly average
calculations or long-term trends.
For more information, see PointType.

Attributes that depend on point type


Some point attributes are not relevant for some point types.

• Only Digital type points use the DigitalSet attribute. It is irrelevant for other type points.
• For non-numeric type points, the CompDev, CompDevPercent, ExcDev, and ExcDevPercent
values are not applicable. These attribute values are returned as 0.
• For non-numeric type points, the Span and Zero attributes are not applicable. For digital
points, Zero is automatically set to the digital set number.
• For non-numeric type points, the step flag is set to On (or 1).

PtClassName
PtClassName specifies the point class. The point class must be defined before the point is
created.
The default PI point classes are:

• Alarm
Used for alarms. See the PI Data Archive Applications Guide for more information on Alarm
points.

• Base
A common set of attributes that all point classes include. The Base class includes both
system-assigned and user-assigned attributes.

• Classic
Includes attributes used by interfaces. Points that represent data from a PI interface are
always in the Classic point class.

PI Data Archive System Management Guide 61


PI points in PI Data Archive

• SQC_Alarm
Used for SQC alarm points. See the PI Data Archive Applications Guide for more information
on SQC alarm points.

• Totalizer
Used for points that represent a running total of data. For more information on Totalizer
points, see the PI Data Archive Applications Guide and the PI SMT Help topic for the
Totalizers tool.
In some cases, you can edit point classes. For details, see Modification of PI point classes.

Scan flag
Some interface programs use a Scan flag. Interfaces that honor this attribute do not update
points whose scan flag is set to OFF. See the interface documentation to find out if your
interface program uses it.

Shutdown flag
The Shutdown flag specifies whether shutdown events are written. Valid values for the
Shutdown attribute are 1 (On) and 0 (Off). For more information, see Shutdown events.
The Shutdown flag is used in conjunction with the configuration file dat\shutdown.dat.

SourceTag and data output to other systems


For data output to other systems, the SourceTag is the PI tag of the data source. For example,
you can define a tag ABC to receive data using point source A, and then define another tag DEF
to send this information to another instrument system using point source B. The source tag for
tag DEF would be ABC. This attribute is used by some interfaces, while other interfaces use the
extended descriptor (ExDesc) for this information.
The interface performs the reading and writing of data when this attribute is defined.
The SourceTag attribute is not stored in the Point Database. It is only a more readable
representation of the srcptid attribute that holds the source point ID. srcptid does not exist in
all point classes. For example, it is part of the classic point class but not of base.

Span
The Span is the difference between the maximum and minimum of the range. It is required for
all numeric data type points.
For float16 point types, Span is used with Zero for scaling values in the archive. The Span value
must be positive. If the value for a point type float16 point is greater than the maximum of
range, it is recorded in the archive as Over Range. For other point types, Zero and Span do not
affect the values recorded in the archive.
The Span is also used when defining trends in client tools (such as PI ProcessBook) with a
vertical scale of database.

62 PI Data Archive System Management Guide


PI points in PI Data Archive

For digital points, the PI Data Archive server assigns the value for this attribute and ignores any
edits made to it, such as with PI Builder.
This attribute is not used for non-numeric points.
You can change the Span for a point without affecting data already in the archive. For points of
type float16, the old Span is used for retrieving the archive data collected before the edit. The
new Span is used for data collected after the edit. If you change Span, the exception and
compression deviation percentages are preserved but the ExcDev and CompDev fields, which
are expressed in engineering units, are modified internally. If you specify any of the deviation
fields in the editing operation, they take precedence.
Note:
Some interfaces use Span information to filter incoming data. These interfaces often
convert out-of-range data to digital states over range and under range. However,
interfaces can use Span configuration in other ways. The PI Server computer itself does
not change out-of-range data, except for points of type float16.

Step attribute in PI points


The Step attribute affects only numeric points. It defines how numeric archived values are
interpolated. The default behavior, step OFF (0), treats archived values as a continuous signal.
Adjacent archived values are linearly interpolated. For example, at 12:00:00, the value 101.0 is
archived and at 12:01:00, the value 102.0 is archived. A request for the archive value at
12:00:30 would return 101.5.
A step flag of ON (1) treats the archived values discretely. Adjacent archived values are not
interpolated; an archived value is assumed constant until the next archived value.
For example:

• At 12:00:00, the value 101.0 is archived


• At 12:01:00, the value 102.0 is archived
• A request for the value at 12:00:30 would return 101.0
Note:
For points with non-numeric type (digital, string, and timestamp) the Step attribute is
always ON (1).
In general, data coming from continuous signals should be archived in points with the step flag
OFF. Examples might include signals from thermocouples and flow meters. Data coming from
discrete measurements should be archived in points with the step flag on. Examples are
sampled lab data, batch charge weight.
The step attribute setting affects both display and compression.
Data for points with this attribute set to 1 is assumed to remain fixed between events, whereas
for points with step=0 data is assumed to change linearly between valid numeric events.
Compression testing is not used when the step flag is set to 1. Instead, an exception calculation
is applied using the CompDev value. If the absolute difference between the current snapshot
and the last archive value is greater than CompDev then the snapshot is sent to the archive.
Compression maximum and minimum limits work the same as for points with the step flag not
set.

PI Data Archive System Management Guide 63


PI points in PI Data Archive

Tag
The Tag attribute is the unique name of a point. The Tag attribute appears as "Name" in some
applications, such as PI SMT and PI Builder.
When naming points, use a consistent, meaningful convention.
The Tag attribute can be any length and can include letters, numbers, and spaces. It has the
following constraints:
• The first character can be alphanumeric, an underscore (_), or a percent sign (%).
Caution:
Avoid using the underscore (_) and percent sign (%) characters in the Tag attribute, as
some applications use them in special ways. For example, SQL uses these characters as
wild cards.
• Control characters, such as linefeeds or tabs, are not allowed.
• The following characters are not allowed:
* ? ; { } [ ] | \ ` ' " ,
These restrictions do not apply to other tag attributes, such as the descriptor.
Some functions and components restrict tag length. PI SQL Subsystem (pisqlss) can process
tags with up to 1,016 characters. Joins involving longer tags return no row found. Queries
without joins return rows but truncate tags to 1,016 characters. For more information about PI
SQL Subsystem , see "pisqlss" in Live Library (https://livelibrary.osisoft.com).

Changing point names


To change a point name, use the Point Builder tool in System Management Tools (Points > Point
Builder), PI Builder, or the piconfig utility. With PI Builder and piconfig, use the NewTag
attribute in the PIPoint table.
Note:
Many client applications, such as PI ProcessBook, automatically update point names.
However, you might have to update some programs that retrieve data, such as PI
DataLink spreadsheets.

TypicalValue
The TypicalValue attribute documents an example of a reasonable value for this point. For a
numeric points, TypicalValue must be greater than or equal to the Zero attribute value, and less
than or equal to the Zero plus the Span attribute values. Some interfaces use TypicalValue as an
initial or default value.

Zero
The Zero attribute indicates the lowest value possible. It does not have to be the same as the
instrument's lowest value, but that is usually a logical choice. Some interfaces require that the
Zero and Span match the instrument system range. See the interface documentation for details.
This attribute is required for numeric data type points.

64 PI Data Archive System Management Guide


PI points in PI Data Archive

The Zero is the bottom of the range used for scaling float16 values in the archive. If the value
for a float16 type point is less than the bottom of range, the value is recorded in the archive as
the Under range state when the archive cache is flushed to disk. The Zero is also used when
defining trends in client tools (such as PI ProcessBook) with a vertical scale of database.
For digital points, the PI Data Archive server assigns the value for this attribute and ignores any
edits made to it, such as with PI Builder.
This attribute is not used for non-numeric points.
A point's Zero attribute can be changed without affecting data already in the archive. For points
of type float16, the old Zero is used for retrieving the archive data collected before the edit. The
new Zero is used for data collected after the edit.
Note:
Some interfaces use Zero information to filter incoming data. These interfaces often
convert out-of-range data to digital states over range and under range. Interfaces might
also use Zero configuration in other ways. PI Data Archive itself does not change out-of-
range data except for points of type float16.

Classic point class attributes


Many OSIsoft interfaces rely on classic attributes. Use the Classic point class for all PI Interface
points if the interface uses the InstrumentTag or location code attributes.

Topics in this section


• Conversion
• Filtercode
• Instrument tag
• Location1, Location2, Location3, Location4, and Location5
• Ranges of ExcMax and CompMax
• SquareRoot
• Srcptid
• UserInt1, UserInt2, UserReal1, and UserReal2

Conversion
Conversion is a number that multiplies the raw Totalizer result. It is used to convert the rate
tag units to the proper units for the totalization.
For TimeWeighted totals, the total is computed with the assumption that the rate tag is in units
per day. If the rate tag units are not in units per day, use Conversion to convert the rate tag to
units per day.
For example, suppose the rate tag units are megawatts (MW) and the desired total is kilowatt
hours (kWh). First, convert the input rate tag to units per day: 1 MW = 1 MJ/sec, so the
conversion factor is (1 MJ/sec) x (86400 sec/day). The totalizer tag's unit of measure would
then be MJ. Next, convert the totalized value from MJ to kWh. 1 kWh = 3.6 MJ, so the conversion
factor is:

PI Data Archive System Management Guide 65


PI points in PI Data Archive

(1 MJ/sec) x (86400 sec/day) x (1 kWh/3.6 MJ) = (24000 kWh/day)


Thus, in this case you would set Conversion to 24000.
For EventWeighted totals, use Conversion to convert the rate tag units to the desired units of
the total. For example, if the rate tag units are kilograms and the desired total is grams, set
Conversion to 1000.
Here are some typical conversion factors for common units.
Conversion Factors for Units
Source Units Total Units Conversion
bbl per day bbl 1.0
lbs per hour lbs 24
gal per min gal 1440
Cubic feet per sec acre-ft 0.504167

Filtercode
The Filtercode indicates the time constant of a first-order filter used to smooth incoming data.
While it does impact the compressed data, it does not affect exception reporting.
We recommend not altering incoming data by leaving this code at its default value of 0. The
other options are:
Code Time Constant (Seconds)
1 10
2 60
3 120
4 600

Instrument tag
When a value is retrieved from or sent to an external system such as a DCS, the instrument tag
is used by some interfaces as the tag in the external system. The InstrumentTag field can be any
length. However, most interfaces only use the first 32 characters of this attribute. Some
interfaces use the extended descriptor (ExDesc) instead.
Note:
For more information, see PI Interfaces.

Location1, Location2, Location3, Location4, and Location5


Note:
The five integer location code meanings are dependent on the PI interface. Each interface
manual has much more detailed information about what these location codes mean for
each particular interface.

66 PI Data Archive System Management Guide


PI points in PI Data Archive

For example, if you are using PI Interface for OPC DA version 2.7.0, refer to the documentation
for that specific interface version.

Ranges of ExcMax and CompMax


The PI API protocol defines the ExcMax and CompMax attributes as a signed 16-bit integer. If PI
Data Archive stores a value that is larger than 32,767, the value returned by the PI API is
32,767.
Interfaces use exception max to ensure that they are sending data between exception min and
exception max; the values of exception min and max are held in an int 16 variable, meaning the
values can be between -32767 and 32767. It's important to note that interfaces do NOT have to
obey these parameters. In special cases, interfaces which have data greater than 32767, or less
than -32767, can choose not to obey these parameters. It's up to the interface and interface
programmer.
Compression is controlled on the PI Data Archive side. The compression value (32 bit), once
configured on the PI Data Archive node, will only take effect on the server node itself.
The values of these point attributes are stored as unsigned 32-bit integers. The maximum value
of each is 4,294,967,295 seconds.
PI SDK applications obtain from the PI Data Archive signed 32-bit integer values for ExcMax
and CompMax.
Note:
For more information, see ExcDev, ExcDevPercent, ExcMax, and ExcMin.

SquareRoot
Some interface programs use the square root code. Check the manual for your interface.

Srcptid
Srcptid is a read-only attribute that represents the PI point number corresponding to the tag
specified in the SourceTag attribute.

UserInt1, UserInt2, UserReal1, and UserReal2


The PI System reserves these four attributes for user applications. Most PI System applications
do not use these attributes. UserInt1 and UserInt2 are 32-bit integers. UserReal1 and
UserReal2 are 32-bit floating-point numbers.
For more information, see Downloading PI SDK.

Built-in attributes
Built-in attributes are a part of every PI point, but do not belong to any particular attribute set.
The types and defaults of built-in attributes cannot be edited.

PI Data Archive System Management Guide 67


PI points in PI Data Archive

Attribute Default value Limits


CompDevPercent 0 ≤ x ≤ 100
DataAccess o:rw g:r w:r Read, write, or no access
(blank)
DataGroup piadmins In PI Identity Database
DataOwner piadmin In PI Identity Database
DataSecurity piadmin: A(r,w) | piadmins: Read, write, or no access
A(r) | PIWorld: A(r) (blank)
DigitalSet system Used only for digital points. The
value is specified when the point
is created.
ExcDevPercent 0 ≤ x ≤ 100
NewTag
PointID 0 System-assigned
PtAccess o:rw g:r w:r Read, write, or no access
(blank)
PtClassName base Base, classic, Totalizer, or
alarm
PtGroup piadmins In PI Identity Database
PtOwner piadmin In PI Identity Database
PtSecurity piadmin: A(r,w) | piadmins: Read, write, or no access
A(r) | PIWorld: A(r) (blank)
RecNo 1 System-assigned
SourceTag

System-assigned attributes
When you create a point, several attributes are assigned by the system. You cannot change the
values of these attributes.

Topics in this section


• ChangeDate
• Changer
• CreationDate
• Creator
• PointID
• RecNo

ChangeDate
The date and time when the point was last edited.

68 PI Data Archive System Management Guide


PI points in PI Data Archive

Changer
The last user to edit the point.

CreationDate
The date and time when the point was created.

Creator
The user who created the point.

PointID
The unique number that identifies the point internally. PointID is never reused, even when a
point is deleted. PointID is the PI point identifier that is passed as a parameter to most of the PI
API functions. In the PI API Manual, this identifier is referred to as the point number, or PtNum.

RecNo
The record number contains the point's primary record number in the archive. This is useful
when using tools such as piartool -aw to examine the archives.RecNo is not to be confused
with the PointID attribute.

Find malfunctioning points


The Stale and Bad Points tool identifies points that have not received data for a long time or
that have current values representing error or bad conditions, such as I/O timeout, PtCreated,
bad input, and Shutdown.
When you find bad or stale points, research the reason for the condition. Some possible
scenarios are:
• No network connection between the PI Data Archive server and the interface.
• The interface computer has been shut down or has lost connection with the device.
• Someone has changed the point attributes.
If point values are stale or bad for no known reason, you should immediately determine the
cause.
When you find points that are no longer useful, such as points that represent data from
obsolete equipment, decommission them.

Create points
The easiest way to create a point is to copy an existing point that is similar to the point you
want to create, then edit its attributes as needed.

PI Data Archive System Management Guide 69


PI points in PI Data Archive

Point Builder in PI SMT provides an easy way to edit and create a small number of PI points. If
you have Microsoft Excel, use PI Builder to create a large number of points.
Note:
To create new points, you need read/write access to the PIPOINT table. See Where to set
access permissions.

Deleting and decommissioning points


When you delete a point, you lose all data for that point and break any client displays that use
the point. After you delete a point, you cannot get it back. If you are unsure about the purpose
of a point or about the need for any historical data associated with the point, consider
decommissioning the point rather than deleting it.
Note:
To delete points, you need read/write access to the PIPOINT table. See Where to set
access permissions.

Topics in this section


• Decommission a point with Point Builder
• Decommission multiple points with PI Builder

Decommission a point with Point Builder


Procedure
1. Start PI SMT and select the PI Data Archive server for that point.
2. Under System Management Tools, select Points > Point Builder.
3. Search for the point.
4. Click the Archive tab.
5. Under Scan, select Off.

Decommission multiple points with PI Builder


Procedure
1. Open a spreadsheet in Microsoft Excel.
2. Click PI Builder.
3. Select the appropriate data server, asset server, and database.
4. Click PI Points > Find PI Points.
5. Search for and select the points you want to decommission. In the Select Object Types and
Column Headers window, be sure that scan and pointsource are selected. The points display
on the spreadsheet.
6. In the scan column on the spreadsheet, change 1 to 0 for all the points.

70 PI Data Archive System Management Guide


PI points in PI Data Archive

Note:
Some interfaces use the pointsource bit and not the scan bit to turn off points. To
decommission points for such an interface, change the pointsource attribute to a value
that you use only for decommissioned points.
7. To publish the changes:
a. Click Publish.
b. In the Edit Mode list, select Edit only.
c. Click OK.

Change PI point type


Use PI SMT, PI Builder, or piconfig to change point types.

Procedure
1. Stop the PI interface that collects data for the point you plan to change.
2. Open PI SMT.
3. Navigate to Points > Point Builder.
4. Search for and select the point for which you would like to change the type attribute.
5. In Point type, select the desired point type.
6. Save your changes.

Topics in this section


• Allowable point type coercions
• Point type changes and archives
• Configure error handling

Allowable point type coercions


To successfully change a point type attribute, you must change between point types that can be
coerced. For example, if you change a point type to int16 and the current snapshot value is
negative, the edit fails because int16 does not translate negative values. In this case, the
following error is returned.
[-10005] Subscript Under Range

Data from the previous type is coerced to the current type at retrieval time.
If an event cannot be coerced to the edited point type, the digital state Coercion Failed is
returned by default. The Coercion Failed digital state acts as a placeholder for an event that PI
Snapshot Subsystem failed to coerce. Out-of-order events may also result in a Coercion Failed
digital state.
Use the parameter Archive_DataCoercionPolicy to translate a digital state. For details, see
Configure error handling.
In the following table, allowable point type coercions are shown with a check mark (✓).

PI Data Archive System Management Guide 71


PI points in PI Data Archive

int16 int32 float16 float32 float64 digital string blob timestamp


int16 ✓ ✓5 ✓ ✓ ✓ ✓ N/A N/A
int32 ✓1 ✓5 ✓ ✓ ✓3 ✓ N/A ✓
float16 ✓1 ✓2 ✓ ✓ ✓3 ✓ N/A N/A
float32 ✓1 ✓2 ✓5 ✓ ✓3 ✓ N/A ✓
float64 ✓1 ✓2 ✓5 ✓ ✓3 ✓ N/A ✓
digital ✓ ✓ ✓ ✓ ✓ ✓ N/A N/A
string5 ✓ ✓ ✓ ✓ ✓ ✓4 N/A ✓
blob N/A N/A N/A N/A N/A N/A N/A N/A
timestamp N/A ✓ ✓ ✓ ✓ N/A ✓ N/A

1Assuming values in the range of 0 to 32767

2Assuming values in the range of -2,147,450,880 to 2,147,483,647

3Assuming positive, integer values that are lower than number of digital states

4Assuming exact, case-insensitive match with a state string

5Assuming the range of the source is compatible with the range of the target

Note:
When you change point types to int16 or digital, you must enter a value for the Zero and
Span attributes.

Point type changes and archives


When you change a point type attribute, the current archive record is closed and a new record
is open. The new record uses the changed point type attribute.
Point type edits affect how users will see both newly generated data and data that was
previously archived. For this reason, you should consider whether you want to:
• Preserve the original point type in the archive history, or
• Convert all archives to reflect the point type change.
By default, the original point type is preserved in the archives. That is, the events that were
created and archived prior to the point type edit will reflect the point type that was used before
the point type edit.
If you want the previously archived data to reflect the new point type, you can reprocess your
archives off-line to convert the stored events to the new point type. See Offline archive file
management with piarchss.

Configure error handling


If PI Archive Subsystem cannot coerce a stored point type to an edited point type, values are
replaced as specified by the Archive_DataCoercionPolicy tuning parameter. You can use
the PI SMT Tuning Parameters tool to configure this parameter, or use piconfig to update this
parameter in the PI Timeout table.

72 PI Data Archive System Management Guide


PI points in PI Data Archive

An Archive_DataCoercionPolicy parameter can have one of these values:


0 DTC_MarkBad Failed events are returned as DS -315 (“Coercion Failed”)
1 DTC_Leave Original events are returned (mixed types)
2 DTC_Zero Returned as 0 or blank depending on the type
3 DTC_Hide Hidden (skip that event)

Modification of PI point classes


Caution:
Modifying point classes sets can trigger a cascade of edits through many points and
across many group and user boundaries. Modify point classes only when absolutely
necessary. Before you begin, back up your system.
You can convert a point from one class to another. Data collection can continue for this point
even though the method of collection may change. For example, you can convert a Totalizer
point, which belongs to the Totalizer point class and is populated by PI Totalizer Subsystem, to
a Performance Equation point, which belongs to the Classic point class and is populated by the
performance equation scheduler.
You can modify point attributes in the following ways:
• Change a point's point class to another point class that contains the desired attributes. To do
this, change the point's PtClassName attribute.
• Change the point class explicitly by deleting and adding attribute sets.
• Change the point class implicitly by modifying existing attribute sets. Modification of an
attribute set triggers a cascade of edits through all point classes that use the attribute set.
• Both implicit and explicit point class modifications trigger edits of all points belonging to
the modified point class. If you do not want to modify all points in a point class, change the
point classes of individual points instead.

Topics in this section


• Required access permissions and other restrictions
• Point classes database edit
• Editing a point's point class
• Point database audit

Required access permissions and other restrictions


Only the piadmin user or the piadmins group can create, delete, and edit point classes. You
must also have read and write permissions on the Point Database (PIPOINT). The piadmin user
always has read/write access to PIPOINT, but if you are using piadmins, you might need to set
the permissions explicitly.
The following restrictions apply when editing and deleting point classes (but not when
creating them).
• You can edit and delete point classes only in stand-alone mode. During stand-alone mode,
existing PI SDK, PI API, and PI Server Application connections close, and attempts to

PI Data Archive System Management Guide 73


PI points in PI Data Archive

reconnect are refused. Subsystems and locally run utilities such as piconfig and piartool
can connect. Default-only attribute edits are supported in normal mode.
• You cannot rename attributes.
• You can add attribute sets to any point class.
• You can delete attribute sets from a point class (only if not used by any point) except:
◦ Required attribute sets contained in predefined point classes (see Predefined point
classes)
◦ In-use point classes
• You can rename any point classes, except predefined point classes.
• You can delete any point classes, except:
◦ Predefined attribute sets
◦ In-use point classes
These restrictions may limit your ability to undo some actions. Before editing point classes,
back up the PI Point Database.

Point classes database edit


Note:
Only the piadmin user or the piadmins group can create, delete, or edit point classes. You
must also have read and write permissions on the Point Database (PIPOINT). The
piadmin user always has read/write access to PIPOINT, but if you are using piadmins, you
might need to set the permissions explicitly.

Topics in this section


• Example: Create a point class
• Example: Delete a point class
• Point class edit
• Example: Rename a point class

Example: Create a point class


Once a new point class is created, you can start assigning points to that class. Create a point
class using piconfig, specifying which attribute sets to include. This does not require stand-
alone mode. All point classes must include the base attribute set.

Procedure
1. In a command prompt window, change to the PI\adm directory.
2. Type:
piartool -sys -standalone on
3. At the piconfig prompt, type:
@table piptcls
@mode create
@istru class
@istru set,...

74 PI Data Archive System Management Guide


PI points in PI Data Archive

MyPtClass
Base,MyAttribSet
@ends
4. To go back to normal mode, enter:
piartool -sys -standalone off

Example: Delete a point class


Note:
You cannot delete predefined point classes or in-use point classes.

Procedure
1. In a command prompt window, change to the PI\adm directory.
2. Type:
piconfig
3. At the piconfig prompt, type:
@table piptcls
@mode delete
@istru class
MyPtClass
@ends

Point class edit


You can explicitly edit a point class by adding or removing attribute sets that form the point
class.
piconfig can display which attribute sets form a point class:
@table piptcls
@ostru class
@ostru set,...
@select class=MyPtClass
@ends

This feature makes it easier to determine what attribute sets are being used to form the point
class.

Topics in this section


• Considerations for attribute set edits
• Example: Edit a point class
• Informational messages

Considerations for attribute set edits


When editing attribute sets, be aware of the following behaviors.

• All point classes contain the base attribute set.


• You can add any attribute set to a point class.
• You cannot delete attribute sets from point classes that are in use.
• You cannot delete required attribute sets from predefined point classes.

PI Data Archive System Management Guide 75


PI points in PI Data Archive

• You cannot rename predefined classes.


• Renaming a point class does not trigger any implicit edits of points.

Example: Edit a point class


A point class list in piconfig shows the following:
* (Ls - ) piconfig> @table piptcls
* (LS - PIPTCLS) piconfig> @mode list
* (Ls - PIPTCLS) piconfig> @ostru class
* (Ls - PIPTCLS) piconfig> @ostru set,...
* (Ls - PIPTCLS) piconfig> @select class=MyPtClass
* (Ls - PIPTCLS) piconfig> @ends
MyPtClass
base,classic
*----------

Procedure
1. Add the attributes MyAttribute1 (string) and MyAttribute2 (int32) to this point class. To do
this, create an attribute set, MyAttributeSet, as follows.
@table piatrset
@mode create
@istru set
@istru attrib,type,default
@istru ...
MyAttributeSet
MyAttribute1,string,my default string
MyAttribute2,int32,22
2. Check that the attribute was correctly created:
@table piatrset
@mode list
@ostru set
@ostru attrib,type,default
@ostru ...
@select set=MyAttributeSet
@ends

You should see:


MyAttributeSet
MyAttribute1,String,my default string
MyAttribute2,Int32,22
* End Repeat...
*----------
3. Edit MyPtClass to include this attribute set. The system must be in stand-alone mode. Enter
at a command prompt:
piartool -sys -standalone on
4. In piconfig, define the attribute sets that should belong to the point class:
@table piptcls
@mode edit
@istru class
@istru set,...
MyPtClass
base,classic,MyAttributeSet
5. Check that these attributes now form MyPtClass.

76 PI Data Archive System Management Guide


PI points in PI Data Archive

* (Ed - PIPTCLS) piconfig> @mode list


* (Ls - PIPTCLS) piconfig> @ostru class
* (Ls - PIPTCLS) piconfig> @ostru set,...
* (Ls - PIPTCLS) piconfig> @select class=MyPtClass
* (Ls - PIPTCLS) piconfig> @ends

You should see:


MyPtClass
base,classic,MyAttributeSet
*----------
6. To see all attributes that are in this point class, enter:
@table pipoint
@ptclass MyPtClass
@?atr
7. Place the system back in normal mode:
piartool -sys -standalone off

Informational messages
Some messages are not directly returned to the user but instead are sent to the PI Message
Subsystem. Such messages include information regarding the status of the steps involved in a
point class edit (rename the original class, add a new class, implicitly edit dependent points,
remove the original class) and the number of dependent points found.

Example: Rename a point class


You can rename all point classes except pre-defined point classes. Renaming does not require
stand-alone mode.

Procedure
1. In a command prompt window, change to the PI\adm directory.
2. Type:
piconfig
3. At the piconfig prompt, type:
@table piptcls
@mode edit
@istru class,newclass
MyPointClass,MyNewPointClass
@ends

Editing a point's point class


When you change a point's point class, any new attributes are added and set to default values.
Attributes that do not belong to the new point class are removed. Existing attributes are copied
if they are in the new point class. Compatible types retain their values and incompatible types
are set to new default values.
When editing a point with piconfig, new attributes can be modified simultaneously. For
example, you could edit the PtClassName attribute and include new attributes that only
belong to the new point class and did not belong to the point's previous class. However, before
you attempt this type of edit, you must set the target class.

PI Data Archive System Management Guide 77


PI points in PI Data Archive

To illustrate, try editing a point that belongs to Totalizer point class to Classic point class in
piconfig as follows:
@table pipoint
@ptclass Totalizer
@mode edit
@istru tag,ptclassname,location4,pointsource

The following error is returned:


*piconfig Err> Unknown parameter <location4> in structure
*@istru tag,ptclassname,location4,pointsource
*piconfig Err> Complete Structure line removed
*@istru tag,ptclassname,location4,pointsource

This is because @ptclass Totalizer sets the environment for this edit to Totalizer point
class, which does not have the location4 attribute. To edit the PtClassName attribute and
new attributes unique to the target point class at the same time, set the environment to the
target point class, Classic, by using @ptclass classic first:
@ptclass classic
@istru tag,ptclassname,location4,pointsource
tagname,classic,1,C

If it is not necessary to edit the PtClassName attribute and new attributes at the same time,
issuing:
@ptclass classic

because PtClassName is a built-in attribute and every point has this attribute.

Converting COM Connector classes to and from native PI classes


Special handling is required in case of a native PI point's PtClassName edit to a COM Connector
point class or vice versa. The difficulty arises because to allow transparent retrieval of data for
a point that has some data in a foreign database and some in a PI archive, PI Data Archive must
be aware of the cutoff times and go to the correct source. The possibility that the conversion
may occur multiple times adds to the complexity.
History of the conversions is ignored and a data request is directed to the current data source.
Note:
Starting with PI Data Archive 2018 SP3 Patch 1, COM connectors are no longer supported.
If you need help to migrate any COM connectors, contact OSIsoft Technical Support (see
OSIsoft Customer Portal Contact Us page (https://customers.osisoft.com/s/contactus)).

Point database audit


The Audit Database includes both attribute sets and point classes. The EnableAudit parameter
in the PI Timeout Table bit (which starts from 0) is used for Attribute Sets Audit Database and
bit 4 for Point Classes Audit Database.
Database Bit Value to Enable (decimal)
Point DB 0 1
Attribute Sets DB 2 4
Point Classes DB 4 16

Use the AuditViewer tool to work with the Audit Database.

78 PI Data Archive System Management Guide


PI points in PI Data Archive

Digital state sets


A digital state set has a name and consists of a list of discrete states, sometimes called digital
state strings. For example, we can define the digital state set Valve-state-set as containing the
states OPEN and CLOSE.

Topics in this section


• Digital state name conventions
• The SYSTEM digital state set
• Define a digital state set

Digital state name conventions


• Digital set names cannot have the prefix "DIGSET_". This prefix is reserved for deleted
digital state sets.
• Leading and trailing blanks are removed from state names.

The SYSTEM digital state set


The SYSTEM digital state set contains over 300 states that can apply to any point. Descriptions
of commonly encountered states are shown in the following table.
All points, no matter what their data type, can store values from the SYSTEM digital state set.
For example, an Int32 type point could have the following values: 2, 3, 4, Shutdown, 8, 9, and
so on. This enables you to store errors and informational values alongside regular values.
Note:
For points with a data type of Digital state, use a user-defined digital state set, and
not a SYSTEM digital state value.
Caution:
You should not change the default SYSTEM digital state values, unless you need to
translate their names into another language.
If necessary, you can add states to the SYSTEM digital state set, but state numbers
193-320 are reserved for use by PI Data Archive and should not be modified. The last
state in the SYSTEM digital state set is number 16383. It is reserved for internal PI Data
Archive use.

The meaning of a particular SYSTEM digital state always depends on the interface or source
application that wrote the event. For example, the Arc Off-line state is returned when there
is an archive gap, but in rare situations Arc Off-line can be sent for other reasons.
Additionally, your site might have programmed use of a particular SYSTEM digital state in a
non-standard way. For example, to indicate a graceful shutdown by an interface the default
SYSTEM digital state is Intf Shut. But it is possible to configure UniInt interfaces to write any
of the SYSTEM digital states to points at shutdown.
Note:
You can view all of the SYSTEM digital state names and numbers in PI SMT. Go to Points >
Digital States and select the SYSTEM set.

PI Data Archive System Management Guide 79


PI points in PI Data Archive

State number State name Description


238 Scan Off A point was removed from an interface while the
interface was running. This can happen in the following
situations.
• The Scan attribute for a point is set to 0 (off).
• The Point Source attribute is changed so that the
point no longer belongs to the interface on which it is
currently loaded.
240 Configure The point configuration has been rejected as invalid by
the data source. Check the interface message logs for
additional information.
244 Filtered Might be returned when filtering data from the archive,
for example, using a filter expression in PI Data Link.
246 I/O Timeout Communication with a remote device has failed. I/O
Timeout is written by the interface to each input point
when:
• The interface is shut down (to show that data
collection was stopped).
• The interface is unable to receive a response from the
data source within the assigned time. This situation
could be caused by a network communication loss
from the device.
Note:
For each interface, you can configure the amount of
time to wait before writing the I/O Timeout
status.

248 No Data The point contains no archived values in the specified


time period. The time period might be specified in a
query, or by the input parameters of a calculation (for
example, in an analysis or performance equation).
249 Calc Failed A calculation point failed due to a mathematical error (for
example, dividing by zero). Or a source point used in the
calculation did not contain valid data.
To troubleshoot this error, check the value of each input
parameter to the calculation at the time of execution.

251 Under Range For Float16 type points, indicates a value that is less
than the bottom of range (Zero attribute) for the point.
For other point types, this state is usually the result of a
substitution coming from the data source.

252 Over Range For Float16 type points, indicates a value that is greater
than the top of range (Zero+Span attributes) for the
point.
For other point types, this state is usually the result of a
substitution coming from the data source.

80 PI Data Archive System Management Guide


PI points in PI Data Archive

State number State name Description


253 Pt Created Assigned to a point when it is created. The value of the
point is updated as soon as data arrives.
Optionally, you can delete this event or edit its value using
the Archive Editor in PI SMT. The Pt Created state is
also removed if you write any events that have a
timestamp before the Pt Created event.
Note:
If you expect data but the point shows Pt Created,
the point is not getting data. To diagnose the issue,
contact OSIsoft Technical Support at OSIsoft
Customer Portal (https://my.osisoft.com/).

254 Shutdown When the PI Data Archive server is restarted, Shutdown


state is written to all points that meet the criteria defined
in shutdown.dat. By default, this is all points with
Point Source set to R that have their Shutdown
attribute set to 1.
For more information about the Shutdown state, see
Shutdown events and Set shutdown events for specific
points.
The following OSIsoft Customer Portal articles also have
useful information.
• PI point is showing Shutdown (https://
customers.osisoft.com/s/knowledgearticle?
knowledgeArticleUrl=PI-Point-is-showing-Shutdown)
• How do you configure a tag to receive a Shutdown
event when the PI Data Archive is restarted? (https://
customers.osisoft.com/s/knowledgearticle?
knowledgeArticleUrl=How-do-you-configure-a-tag-to-
receive-a-Shutdown-event-when-the-PI-Data-Archive-
is-restarted)
Note:
For points configured to use buffering, use of the
Shutdown state is not required.

255 Bad Input Written by the interface, if the data received was invalid.
For example:
• The data does not match the point type (such as
writing a float value to an integer point).
• The quality flag of the data received from the data
source was invalid.
For more information on the specific cause, see the
interface message log close to the event's timestamp.

PI Data Archive System Management Guide 81


PI points in PI Data Archive

State number State name Description


302 Arc Off-line Marks a time where interpolation of the value is unsafe.
The most common cause is a time period for which there
is no archive file (an archive gap).
You can set the MarkArchiveGaps tuning parameter to 0
(zero) to stop PI Data Archive from returning the Arc-
Offline status. For more information about the effects of
adjusting the MarkArchiveGaps tuning parameter, see
the OSIsoft Customer Portal article What are the effects of
changing the MarkArchiveGaps tuning parameter?
(https://customers.osisoft.com/s/knowledgearticle?
knowledgeArticleUrl=What-are-the-effects-of-changing-
the-MarkArchiveGaps-tuning-parameter).

311 Intf Shut Indicates a graceful shutdown by an interface.


For example, when the interface shuts down gracefully
you can use the UniInt parameter /STOPSTAT or the OPC
parameter /OPCSTOPSTAT to configure an interface to
write Intf Shut to all points loaded by that interface.

315 Coercion After the data type of a point is changed, data from the
Failed previous type is coerced to the current type at retrieval
time. If an event cannot be coerced to the edited point
type, Coercion Failed is returned. See Allowable point
type coercions for more details.
316 snapfix The snapfix procedure has been used on the PI Data
Archive server to fix a corrupted snapshot table. After a
new value arrives, the value of snapfix is replaced and
not archived.
317 Invalid Float A point of floating-point data type received an invalid
value (for example, a string value).
318 Future Data The notion of the current value of a future PI point
Unsupported depends on the usage and requirements of the client
application. Therefore, for the end-of-stream value for a
future PI point, PI Data Archive returns Future Data
Unsupported.
For more information, see Future data.

Define a digital state set


To define digital state sets, use the Digital States tool in PI SMT (Points > Digital States) or
piconfig. Digital points typically have only a small number of valid states. Before you
configure a digital point, you must define the digital state set that it will use.
For example, you can configure a point to report a valve position with a digital code value of 0
or 1, where 0 indicates a CLOSED state and 1 indicates an OPEN state.
Before you configure this point, you must create a digital state set with two strings, CLOSED
and OPEN. You might name this digital state set "Valve Position" . You can define other points
that also have CLOSED and OPEN states to use the same Valve Position digital state set. Points
that have states of ON and OFF would use a different digital state set, which you could name
"Switch Position" .

82 PI Data Archive System Management Guide


PI points in PI Data Archive

PI Server determines the digital code value, such as 0 or 1, based on the position of the digital
state string in the Digital State Table. The first value is 0, the second is 1, the third is 2, and so
on.
You can define up to 16,383 state sets with up to 16,383 states in each set. For details, see The
SYSTEM digital state set.

PI Data Archive System Management Guide 83


PI points in PI Data Archive

84 PI Data Archive System Management Guide


Archives
PI archives are the files that the PI System uses to store PI data. PI Data Archive 2015
introduces special archives called "future archives" for PI points that have the "future" attribute
set: these points are typically used to store forecast data. Traditional archives used to store
time-series data are referred to as "historical archives".
When you run the setup program, automatic archive creation is enabled by default.
Each historical archive file contains events for a time period specified by the archive start time
and end time. The archive receiving current data is called the primary archive. When the
primary archive becomes full, an archive shift occurs: a new archive file is created and becomes
the primary archive.
For information on managing future archives that are used to store forecast data, see Future
data.

Topics in this section


• Fixed or dynamic archive files
• Archive management
• Backfilling management
• Offline archive file management with piarchss

Fixed or dynamic archive files


Archive files can be either fixed or dynamic. Fixed archives allocate the full amount of space in
advance; that is, an empty archive and a full archive use the same amount of disk space. Fixed
archive files are always the same size, regardless of how much data they contain. Dynamic
archive files grow in size as they receive data.
Archive files range in size from 1MB to 2TB.

Topics in this section


• Primary archive files
• Archive records
• Index records
• Fixed and dynamic archives

Primary archive files


The primary archive is the historical archive file that covers the current time range.
For an archive file to be a primary archive, it must be registered, shiftable, writable, and large
enough to handle the current size of the PI point database.
The end time for the primary archive is defined when an archive shift occurs. The time of the
shift becomes the end time and that archive is no longer the primary archive.

PI Data Archive System Management Guide 85


Archives

Archive records
PI Data Archive stores archive events as data records. Data records are either primary records
or overflow records. Each point in the PI point database has one primary record allocated in
every archive file. Primary records are stored at the very beginning of the archive file. When
the primary record for a point fills up, the data for that event goes to an overflow record in the
archive file. Overflow records start at the end of the archive file and are filled backwards. Each
record is one kilobyte.

A point can have as many overflow records as needed. Points that receive events at a slow rate
might never need to allocate an overflow record, whereas points that receive events at a fast
rate might need to allocate many overflow records. PI Data Archive uses index records to keep
track of multiple overflow data records for a point.

Index records
Index records are records that index the overflow data of a point by time. After one overflow
record for a point is full, PI Data Archive creates an index record for that point and a new
overflow record. Archive data retrieval for points with chains of index records are marginally
slower than for points with zero or one index records.

Fixed and dynamic archives


Fixed archive files have a fixed size, regardless of how much data they contain. Dynamic archive
files grow in size as they get data. By default, PI archives are fixed.
Use fixed archives for all normal operations. The disk space for a fixed archive is allocated at
creation time, so an empty archive and a full archive use the same amount of disk space. A fixed
archive may or may not participate in archive shifts, depending on its capacity to hold data for
all the points in the system. You can add new points to a fixed archive if it is the primary
archive.
Fixed archives become dynamic if they are full, if there is sufficient disk space. This process is
known as auto-dynamic archive conversion. Auto-dynamic archive conversion is useful, for
example, if you need to incorporate backfilled data into a non-primary fixed archive and the
archive is full. If a converted archive becomes primary, it converts back to a fixed size. The
allocated disk space for archives is not modified.
After a non-primary fixed archive is converted to dynamic and data is backfilled, you can
convert the dynamic archive back to fixed using piarchss, the Offline Archive Utility.

86 PI Data Archive System Management Guide


Archives

The size of a dynamic archive file is flexible, enabling disk space to be allocated only as needed.
Dynamic archives cover a specific time range. The archive file grows as overflow records are
added, up to a specified maximum size or, at most, 2TB.

Archive management
The topics in this section explain how to perform tasks in PI SMT wherever possible and
provide command-line instructions where necessary. For more information on using
command-line tools for managing archives, see the PI Data Archive Reference Guide.
Note:
For information on managing future archives that are used to store future data, see
Future data. To use future data, you must install PI Data Archive 2015 or later versions.

Topics in this section


• Archive management tools
• Locate the archive files
• Prevent archive data loss
• Automatic event-queue reset
• Archive creation with PI SMT
• Archive size
• Archive registration
• Archive shifts
• Start and stop interfaces
• Annotations in PI SMT
• Manage archive gaps
• Archive reprocessing
• Configure number of archives monitored for read-write errors
• Prevent archive changes
• Export a list of archives to a file
• Create a .bat registration file
• Move archive files
• Delete an archive event
• Delete an archive
• Check for corrupt archives

PI Data Archive System Management Guide 87


Archives

Archive management tools


SMT archive management tools
The Archives tool in SMT displays a list of registered archives for each connected PI Data
Archive server. The archive list shows the status and properties of each archive. Toolbar
functions and a context menu allow you to monitor and manage archive use.

• Archive Editor
View, edit, insert, and delete values for events in a PI archive. In SMT, select Data > Archive
Editor.

• Archives tool
Monitor and manage archive use. The tool displays a list of registered archives for each
connected PI Data Archive server, including the status and properties of each archive. In
SMT, select Operation > Archives.

• Snapshot and Archive Statistics tool


Monitor archive subsystem and snapshot subsystem activity and usage statistics on
connected servers. If you periodically review these statistics, you can solve system or data
issues before they become large problems. Many of the statistics, such as Overflow Data
Record Count, are informational; others are valuable for predictive maintenance. In SMT,
select Operation > Snapshot and Archive Statistics.

Command-line utilities
For information on using command-line tools to manage archives, see the PI Data Archive
reference topics "PI Data Archive command-line utilities" in Live Library (https://
livelibrary.osisoft.com).

• piartool
Manage most archive management tasks, including creating, registering, and unregistering
archives, forcing archive shifts, and listing archive file details.

• piarchss
Use as an offline processor to reorganize (combine and split) and repair archive files.

Locate the archive files


By default, the installation program places the archives in the PI\dat directory, but you can
choose a different location. The SMT Archives tool lists the location of each registered archive
file.

Procedure
1. Start PI SMT and select the PI Data Archive server on which you want to view the archives.
2. Under System Management Tools, click Operation > Archives. The Archives tool opens. The
Archive File column lists all the archives registered on the selected server and displays the
full path for each. The primary archive is first on the list.

88 PI Data Archive System Management Guide


Archives

Caution:
On systems collecting production data, do not use anti-virus software to scan the
directories containing PI Data Archive database and archive files.

Prevent archive data loss


After receiving data from an interface, PI Snapshot Subsystem places data in the event queue.
PI Archive Subsystem retrieves this data almost instantly. With this waypoint for data, PI Data
Archive continues data collection if the archives or disk become unavailable.
To take advantage of this data waypoint, do not place the event queue on the same physical
disk as the archives. Check the location of the event queue on your server and make sure it is
on a different disk from the primary archive.

Procedure
1. Open PI SMT.
2. Under System Management Tools, click Operation > Tuning Parameters, and then click the
Snapshot tab.
3. Double-click the Snapshot_EventQueuePath parameter. The parameter window opens.
4. Set Value to the desired path for the event queue. Make sure the path is on a different disk
from the primary archive. Run the command pidiag -updateFolderSecurity to make
sure proper permissions are set in the new path.
5. Restart PI Snapshot Subsystem. This moves the event queue file location. You can delete the
old event queue file.

Automatic event-queue reset


If an event-queue file becomes corrupt, PI Data Archive automatically resets the event queue to
attempt to recover data. In many situations, automatic event-queue reset can keep events
flowing, even if an unexpected error occurs while PI Data Archive reads or writes to the event
queue. It is supported for both historic and future event queues.
Note:
The event queue serves as a memory and disk buffer between the snapshot subsystem
and archive subsystem. For more information, see Event queue.
If PI Data Archive detects corruption in the event queue, it attempts to recover the existing
event-queue files. If recovery fails, PI Data Archive moves the event-queue files to a new folder
and creates a new queue. The new folder is a sub-folder of the main event-queue folder; its
name includes a time stamp.
Note:
The location of the main event-queue folder is set during installation or upgrade. For
more information, see the PI Data Archive installation topic, "Determine the disk volumes
for your deployment" in Live Library (https://livelibrary.osisoft.com).
If you need to recover the old event-queue files, contact OSIsoft Technical Support (see OSIsoft
Customer Portal Contact Us page (https://customers.osisoft.com/s/contactus)).
PI Data Archive writes message ID 2378 to the log file when it attempts automatic event-queue
reset, and writes further messages to record the success or failure of the operation.

PI Data Archive System Management Guide 89


Archives

The following performance counters record information about automatic event-queue reset.
Performance counter Description
Event Queue Error Count Number of times that an error reading or writing
an event queue has occurred.
Reset Folder Count Number of event-queue reset folders currently on
disk.
Event Queue Reset State Set to ON (or 1) during an automatic queue reset,
and OFF (or 0) once the queue reset completes
successfully. This performance counter is a
Boolean value.

For lists of other performance counters that gather statistics, see the PI Data Archive reference
topic, "PI performance counters" in Live Library (https://livelibrary.osisoft.com).

Archive creation with PI SMT


Use the Archives tool in PI SMT to create historical archives. You can also use the piarcreate
command-line utility, as described in the PI Data Archive Reference Guide.
Note:
Future archives are created automatically by PI Data Archive when future PI points are
populated with data.

Topics in this section


• Create an archive
• Create multiple archives for backfilling
• Archive names

Create an archive

Procedure
1. Select Start > PI System Management Tools > Operation > Archives.
2. Click the Create a New Archive button ( ).
3. In the Create a New Archive dialog box, select Single archive.
4. Click the browse button to change the archive path, if desired.
You can store an archive in any local or network directory that is accessible by PI Data
Archive. Local storage with other archives provides a convenient option for managing
archives.
5. If you do not want to use the chronologically numbered default name, enter a name in
Archive name.
If the text field is yellow, then the archive name is already in use by another file, possibly an
unregistered archive. You may want to cancel the procedure and use the existing archive, if
empty.
6. Select a source option to create the archive:

90 PI Data Archive System Management Guide


Archives

◦ Clone primary archive fixed size: creates an empty archive of fixed type that's based on
the size of the current primary archive.
◦ Create archive with a custom fixed size: creates an empty archive with a different size
(typically larger) than the current primary archive. In the accompanying field, specify the
size in megabytes (MB). The size must be equal to or greater than the size of the current
primary archive, up to a maximum of 2 TB.
◦ Create archive with fixed start and end time: creates an empty archive to be used only for
a specified time period. If you select this option, for the Type option, select Fixed.
Note:
Start and end times cannot overlap an existing archive.
7. Click OK.
The Archives tool creates and registers the archive.

Create multiple archives for backfilling


Note:
Use this procedure to create historical archives for backfilling. For backfilling future
archives with forecast data, you do not have to create archives manually.

Procedure
1. Select Start > PI System Management Tools > Operation > Archives.
2. Right-click an archive file from the target PI Data Archive server and choose Create New.
3. In the Create a New Archive dialog box, select Multiple archives for backfilling.
4. Click the browse button to change the archive path, if desired.
5. Enter a prefix for the file in Archive name, or accept the default prefix.
The start time and end time will be automatically appended to the archive name depending
on the archives being created.
6. Define the Maximum archive duration for each new archive file.
7. Enter Start time and End time for the new archive files using PI time format.
Note:
Start and end times must not overlap an existing archive.
8. Click OK.
The Archives tool registers the newly created archives automatically.

Archive names
Use a naming convention for your PI archives that is valid for the underlying operating system
and ensure that the file location has sufficient disk space. There are no other limitations to
name PI archives.
The default archive file names are piarch.xxx, where xxx is 001, 002, 003, and so on.

PI Data Archive System Management Guide 91


Archives

The associated annotation file has the same full path name as its archive file with .ann
appended. For example, the annotation file for the piarch.001 archive file would be piarch.
001.ann.

Archive size
Archive size affects backups, backfilling, frequency of shifting, and total number of points
allowed.
To determine archive size, use the following guidelines:
• If you are backfilling data, see Backfilling management.
• Allow at least 2 KB for each point in the system.
• An archive file cannot exceed 2 TB. However, if your PI Data Archive server will have 50,000
points or fewer, then you can safely use the default value.
• If you have more than 50,000 points, run 64-bit PI Data Archive on a 64-bit Windows
operating system and set the archive size to 4-8 KB times the total number of points, with
the following consideration on memory resources.
Select a size that allows at least two archive files to fit in the Windows File System Cache
(FSC). At most times, PI Data Archive writes to and reads from the two or three most recent
archive files. The FSC is capped at approximately 1 GB on 32-bit systems, but can use all of
the RAM on 64-bit systems. Therefore, a safe upper limit for archive files is 256 MB for 32-
bit systems and (RAM ÷ 3) for 64-bit systems.
Tip:
Many administrators size their archives based on a size that is convenient to use with
their desired backup media. As a rule of thumb, set your Snapshot Event Queue to half of
the archive size.

Archive size and point count limits


The archive size limits the number of points that can be created. No more than half of the
archive records of a fixed archive can be primary records. To resolve this, before creating
additional points, force the archives to shift into a larger archive. For details, see Force an
archive shift.

Archive size and shift frequency


The larger the archive file, the less often an archive shift is necessary. To decide what archive
size is optimal for your system, consider the following factors:

• Backup device
• Available disk space
• Average incoming data rate

Estimate archive utilization


You can determine the utilization of your archives in PI SMT, under Operation > Archives. Look
at the values in the %Full column for each of your archives.

92 PI Data Archive System Management Guide


Archives

Archive registration
The PI Data Archive archive registry contains the name, location, size, record count, and record
size for each archive file. This information is stored in the binary file, PI\dat\piarstat.dat.

Topics in this section


• Register archives
• Unregister archives
• Display the header of an unregistered archive
• Bulk archive registration

Register archives
For PI Data Archive to recognize a file as an archive file, you must register the file. After an
archive is registered, it is available to the system and participates in shifts and storage and
retrieval of event data.

Procedure
1. Select Start > PI System Management Tools > Operation > Archives. The Archives tool lists
all the archives registered on the selected server.
2. Right-click an archive file from the target PI Data Archive server and select Register Archive.
3. Browse to the archive file you want and click Open.

Unregister archives
To move or reprocess an archive file, you must unregister the archive, make your changes, and
then re-register the file. You cannot unregister a primary archive. If the PI Data Archive server
is not on the local machine, this task requires read and write access on the PIARCADMIN
database.

Procedure
1. Select Start > PI System Management Tools > Operation > Archives.
2. Right-click an archive file from the target PI Data Archive server and select Unregister
Archive.
3. Click Yes.

Display the header of an unregistered archive


To view the properties (such as start and end times) of an unregistered archive, you can display
its header.

PI Data Archive System Management Guide 93


Archives

Procedure
1. Select Start > PI System Management Tools > Operation > Archives.
2. In the toolbar, click Display Unregistered Archive .
3. Browse to the correct directory, select the unregistered archive file, and click Open.
PI SMT adds the unregistered archive to the list of archives.

Bulk archive registration


Use the piartool utility to register or unregister archives in bulk. The piartool utility allows
you to use the wildcard * and question mark ? symbols to perform bulk operations. The symbol
* matches all possibilities with any number of characters. The symbol ? matches a single
character and may be used any number of times.

Topics in this section


• Register archives in bulk
• Unregister archives in bulk

Register archives in bulk

Procedure
• To register archives, use the piartool -ar command. The syntax is:
piartool -ar path

The specified path must be the absolute path of an existing archive file.
For example, to register a single archive called piarch.006 in the PI\dat directory on the
D drive:
piartool -ar D:\PI\dat\piarch.006

You can use the wildcard characters * and ?. The symbol * matches all possibilities with any
number of characters. The symbol ? matches a single character and may be used any
number of times.
For example, to register all archive files in the PI\dat directory that begin with the
piarch.0 prefix:
piartool -ar D:\PI\dat\piarch.0*

Note:
When working with wildcards, wildcards will try and register all archives including
the ones that have been manually registered. This will not cause any issues.

Unregister archives in bulk

Procedure
• To unregister an archive, use the piartool -au command. The syntax is:
piartool -au path

where path specifies an absolute pathname.

94 PI Data Archive System Management Guide


Archives

For example, to unregister an archive called piarch.006 in the PI\dat directory on the D
drive:
piartool -au D:\PI\dat\piarch.006

You can use the wildcard characters * and ? to register archives in bulk. The symbol *
matches all possibilities with any number of characters. The symbol ? matches a single
character and may be used any number of times.
For example, to unregister all archive files that begin with the piarch.0 prefix and are
located in the PI\dat directory:
piartool -au D:\PI\dat\piarch.0*

Archive shifts
The primary archive is the archive that receives current data. At some point, you'll need an
archive shift so that a new archive file is created and becomes the primary archive. The archive
shift is triggered when the primary archive is nearly full.
Note:
During an archive shift, you cannot add, edit, or delete points.
You can handle archive shifts in the following ways.
• Automatic archive shifts: The archive shift is triggered when the primary archive is nearly
full.
• Scheduled archive shifts: You specify the date and time that you want the archive to shift.
Note:
If you schedule archive shifts, then automatic shifts do not occur. However, you can
still force an archive shift, if necessary.

Topics in this section


• Automatic archive shifts
• Automatic archive creation
• Schedule archive shifts
• Set availabilty of archives for shifts
• Force an archive shift
• Failed archive shifts

Automatic archive shifts


PI Data Archive performs an archive shift before the primary archive is completely full. As a
result, the archive contains some extra space so that, if necessary, you can add data later.

PI Data Archive System Management Guide 95


Archives

Automatic archive creation


PI Data Archive automatically generates a new archive for an archive shift.
Generally, it is easier to track available disk space than which archives are mounted, what they
contain, and whether they can be overwritten. If your hard disk becomes full, PI Data Archive
can act in the following ways:

• Overwrite old archive files


• Hold data in the event queue without sending it to an archive
OSIsoft recommends you use MCN Health Monitor to monitor disk space on PI Data Archive
and use notifications when free space is low on the PI Data Archive server.

Topics in this section


• View the next predicted archive shift time
• Automatic archive creation tuning parameters
• Disable automatic archive creation

View the next predicted archive shift time


The PI SMT Archives tool (Operation > Archives) has a shift prediction column that predicts
the time for the next archive shift, based on the average number of archive records consumed
per hour, plus the rate of consumption. If the primary archive is less than 20 percent full, the
prediction is based on the previous archive rates.

Automatic archive creation tuning parameters


The following parameters specify the behavior of automatic archive creation.

96 PI Data Archive System Management Guide


Archives

Tuning Parameter Description


Archive_AutoArchiveFileRoot Specifies the path and file name prefix for new archives. For
example, a setting of "C:\PI\arc\auto_" specifies that new
archives are created in the C:\PI\arc folder with a file name
prefix of "auto_" . Archive_AutoArchiveFileFormat and
Archive_AutoArchiveFileExt specify how the remainder
of the archive’s name is formed.
Archive_AutoArchiveFileExt Specifies the file extension for the archive file. The default
value is ".arc" .
Archive_AutoArchiveFileFormat Specifies the generated portion of the file name for the
archive file. Possible values are:
0 - _D_Mon_YYYY_H_M_S.ext
1 - prefix_YYYY-MM-DD_HH-MM-SS.ext
2 - prefix_UTCSECONDS.ext
Where prefix is the file name prefix specified in
Archive_AutoArchiveFileRoot and .ext is the file
extension specified in Archive_AutoArchiveFileExt.

Archive_AutoArchiveFileSize Specifies the size of new primary archives that are created via
automatic archive creation. When set to 0 (the default
setting), the size of the new primary archive is always the
same as the current primary archive. When set to any other
value, specifies the size of the new primary archive when an
automatic archive create shift occurs. If you make the size
smaller than the current primary archive, the specified size
must be large enough to satisfy the primary records for
points currently in use.

Note:
On a PI Data Archive server, you can set tuning parameters by using PI SMT. Open SMT
and click Operation > Tuning Parameters. Click the Archive tab, double click the tuning
parameter you want to edit, enter the value you want, click OK.
Note:
If the Archive_AutoArchiveFileRoot is modified, and the Archive subsystem does not
have proper permissions to this new path, then run the command pidiag -
updateFolderSecurity to set proper permissions.

Disable automatic archive creation

Procedure
1. Select Start > PI System Management Tools > Operation > Tuning Parameters.
2. Click the Archive tab
3. Select the Archive_AutoArchiveFileRoot parameter and clear the Value field (leave it
blank).

PI Data Archive System Management Guide 97


Archives

Schedule archive shifts


Users can now configure PI Archive Subsystem to automatically shift historical archives at a
specific time duration rather than having PI Archive Subsystem shift based on remaining
archive space, or by manually forcing a shift. The result of this is fixed time archives.
With daily duration, shifts happen at midnight every day. With weekly duration, shifts happen
at the midnight of Sunday. With monthly duration, shifts happen at midnight of the first day of
every month. In regions where daylight savings time occurs at midnight, for the Spring
transition, the shift time will be at 1:00:00 daylight saving time. For the Fall transition, the shift
time will be at 0:00:00 standard time. Natural shifting is just allowing the shift to occur
automatically when the archive is full.
When the Archive_AutoArchiveFileSize tuning parameter is set, the new primary
archive's size will be based on this value. When it is not set, PI Archive Subsystem calculates
the new primary archive's size based on past data rate and the shift duration, so that the
archive can accommodate the expected amount of data.
In collective environments, scheduled shift can be configured on the primary server which
applies to all members. Secondary members will shift based on the primary server's time zone.
As in earlier versions, future archives are still considered monthly archives. In a collective,
future archives' start and end times are now based on the primary's time zone.
Note:
If you are upgrading an existing PI Collective, you will need to upgrade all the secondary
members before upgrading the primary server. For more information see "Scheduled
archive shifts in collective manager" in Live Library (https://livelibrary.osisoft.com).

Configure scheduled shifts

Procedure
1. Open SMT
2. Click Operation
3. Click Archives
4. In the main panel, with the Historic tab selected, click Review and update parameters
5. Select the desired shift duration in the Shift Schedule list
6. Click Save

Note:
If Auto create size(MB) is set, and shift type is changed from natural shift to scheduled
shift, the size setting will be automatically removed by SMT. Auto create size(MB) is
the same as the Archive_AutoArchiveFileSize tuning parameter. When it is not
set, PI Archive Subsystem will automatically calculate the archive size based on past
data rate and the shift duration. If you still want to configure the size in the Auto
create size(MB) box, fill in the desired size and click save.

98 PI Data Archive System Management Guide


Archives

Force shifts
When scheduled shift is configured, if a force shift is issued within 10 minutes of the next
scheduled shift time, the shift will happen, the new primary archive's start time will be set to
the next scheduled shift time, and the next scheduled shift will be skipped.

PowerShell support for scheduled shift


To get the current settings for your scheduled shift in Powershell, use the cmdlet Get-
PIArchiveSetSettings.
In the example below, 420_cp1 is the collective name. You can use either the target server name
or collective name (name in KST.)
PS C:\WINDOWS\system32> Get-PIDataArchiveConnectionConfiguration 420_cp1 |
Connect-PIDataArchive | Get-PIArchiveSetSettings

Sample output:

To set the shift schedule, use the command Set-PIArchiveSetSettings.


PS C:\WINDOWS\system32> Get-PIDataArchiveConnectionConfiguration 420_cp1 |
Connect-PIDataArchive | Set-PIArchiveSetSettings -Name 0_Historical -
ShiftFrequency Monthly

Set availabilty of archives for shifts


To set whether an archive is available to be shifted to and therefore become the new primary
archive, follow this procedure.

Procedure
1. In PI SMT, select Operation > Archives.
2. In the list view, right-click an archive and select Make Non-shiftable or Make Shiftable.

Force an archive shift


During normal operations, you do not need to force an archive shift. However, you can force an
archive shift when necessary.
Even if you are scheduling when your archive shifts occur (rather than using the default
automatic shifts) you can still force an archive shift.
Note:
If the following message is displayed: Warning: This shift will clear data from
the target archive. Are you sure you want to force an archive shift
on serverName to a new archive?, you can ignore it, if Auto Archive Creation is
enabled (Archive_AutoArchiveFileRoot is set to a value). A new archive will be generated
and no data will be cleared.

PI Data Archive System Management Guide 99


Archives

Use this procedure to force a server to shift from one historical archive to another.

Procedure
1. Select Start > PI System Management Tools > Operation > Archives.
2. Right-click the server's primary archive in the list and select Force Shift.

Failed archive shifts


One of the most common reasons for shift failure is inadequate disk space. If an archive shift
fails for any reason, all further shifts are disabled and a message is sent to the log. When the
cause of the failure is resolved (such as by providing more disk space), restart PI Archive
Subsystem to enable archive shifts. If a failure is caused by a lack of an available archive to shift
into, then register a new empty archive and enable a shift into the new archive.
Failed shifts do not cause any data loss since the archive goes into read-only mode and
prevents data from being written to the archive file. All incoming data is queued in the event
queue by PI Snapshot Subsystem.

Start and stop interfaces


The first time you start a PI interface, start it from the Windows Services control panel. After
that, you can start and stop the interface using PI ICU.

Procedure
1. Click Start > Control Panel > Administrative Tools > Services
2. In the Services window, find the interface that you want to start or stop. For example, PI
Random Simulator (random) Interface X64.
3. Right-click the interface service and choose Start or Stop.

Annotations in PI SMT
Use annotations to associate arbitrary information, such as text comments and other binary
data, with a PI archive value.
Use the PI Annotations Editor in the PI SMT Archive Editor to view, edit, insert, and delete
annotations to PI point values. Annotations can include comments, notes, supplementary
values with specified data types, and files.
Every value in the snapshot or the archive may be annotated. Annotated events always bypass
compression. An annotation can be of any binary data type. The size of an annotation is
controlled by the Snapshot_AnnotationSizeLimit tuning parameter.
Each archive file has a single associated annotation file, with an .ann extension. The
annotation file is created if it does not exist. It is important to store archive and annotation files
together, especially when a backed up archive file is restored.
Note:
Any operation on an annotation translates into an actual I/O, bypassing archive caching.
Annotated events are less efficient than non-annotated events.
You can use the following modes to maintain annotations.

100 PI Data Archive System Management Guide


Archives

• Standard/Default mode
Provides a table format that can include alternate values with assigned data types. Use this
mode for simple string annotations, annotations that do not require structured data, and to
conform with legacy annotations from earlier versions of PI Data Archive.

• String/VARIANT mode
Stores annotation data as an unspecified VARIANT data type. Use this mode for annotation
data that is structured, read programmatically, or exported for use by another application.

Topics in this section


• Maintain PI annotations with Archive Editor
• Add or edit annotations
• Import a file to an annotation

Maintain PI annotations with Archive Editor


Procedure
1. Select Start > PI System Management Tools > Data > Archive Editor.
2. Select an event in the archived events list and click the Annotations button , or right-click
the value and select Annotations.
The PI Annotations Editor opens in Standard mode by default. To use String/Variant mode,
select the Use String Annotations? check box in the search panel.
3. Right-click an annotation row to select from these options (the PI Annotations Editor
toolbar also provides these options):
◦ Delete
Delete the selected event.
◦ Import
Import a file object into an annotation row.
◦ Export
Export a file object from an annotation row.
◦ Show Details
Show detailed information about the annotation record in the status bar.

PI Data Archive System Management Guide 101


Archives

Add or edit annotations


Procedure
1. Select an event in the archived events list and click the Annotations button , or right-click
the value and select Annotations.
2. In the PI Annotations Maintenance window, modify the following information, or enter new
rows containing:
a. Point values or any other data that requires a specified data type in the Value column. If
your annotation consists only of a string, enter it in the Value column.
b. Data types to match corresponding values in the Value Type column. Value Type is set
automatically, and should be changed only if it is incorrect.

If you need to change a Value Type, select one of the following.

▪ String (default type)


▪ Byte, Short, Long
▪ Single, Double
▪ Boolean
▪ PITime, DateTime
Other data types displayed are for internal use, and cannot be used for annotations.
c. Related information and secondary annotations in string format in the Description
column.
3. Enter as many rows as necessary and click Save.

Import a file to an annotation


Procedure
1. Select an event in the archived events list and click the Annotations button , or right-click
the value and select Annotations.
2. In the PI Annotations Maintenance window, set the Value Type to File, and click in the Value
cell.
3. Click the Import button .

4. Select a file and click Open.


5. Click Save.

102 PI Data Archive System Management Guide


Archives

Manage archive gaps


Caution:
Use this procedure for historical archives only, not for future archives.
An archive gap is a range of time when no archive file is registered. If an event is sent to the
archive and no archive file is registered within the appropriate time range, the event is
discarded and an error is logged. If data retrieval is attempted for a time range that overlaps
with a gap, the returned data includes a digital state Arc Offline that indicates the beginning of
the gap. This prevents values from being interpolated when data is missing.
Generally, PI archive files account for all of history with no gaps or overlaps. If an unintentional
gap between archive files occurs, you can use PI SMT or the pidiag tool to fix the gap. Until the
gap has been fixed, data cannot be collected and stored in the time range in the gap.

Procedure
1. Select Start > PI System Management Tools > Operation > Archives.
All the archives registered on the selected PI Data Archive server are listed. Any archive gaps
are labeled and highlighted in red.
2. Right-click the line displaying the archive gap and select Create New.
The Create New Archive dialog box appears. The dialog box is already populated with the
correct start and end times to fill the archive gap.
3. Click OK.
The new archive is created and registered, and an archive gap no longer appears in the
archive list.

Archive reprocessing
Starting with PI Data Archive 2016, you can use the PI SMT Archives tool to reprocess archives
while they are online.
Note:
You still need to perform some reprocessing tasks when an archive is offline by using the
command-line tool, piarchss. For example, use piarchss to combine archive files or
divide a large archive file into smaller files. See Offline archive file management with
piarchss for more information.

When to reprocess an archive


It is always necessary to evaluate whether reprocessing an archive is the best course of action.
Reprocessing should be done on an as-needed basis, rather than be automatic or scheduled.
The following situations are recommended reasons to reprocess archives:
• To repair a corrupt archive to enable access to its data
• To compress an archive to recover space (offline reprocessing only)
For example, if you have deleted many PI points, you can remove the data of the deleted
points, or you might want to compress archives that are not full.
• To improve access time to an archive for certain queries

PI Data Archive System Management Guide 103


Archives

Reprocessing an archive typically improves performance for so-called deep queries, which
read single points over a long time range, for example, in PI ProcessBook trends. However,
reprocessing an archive can worsen performance of queries that read multiple points over a
time range (for example, points associated with batches or event frames).
Outside these situations, there is no gain from reprocessing archives, and even potential
degradation of performance due to unnecessary contention for system resources on a
production system (RAM, disk space, CPU). In particular, it is not necessary to reprocess
archives after a PI Data Archive upgrade, or to schedule a nightly, weekly, or monthly task to
reprocess all archive files.

How to reprocess an archive online


When you open the Archives tool under Operations in PI SMT, corrupt archives are flagged so
that you know you need to reprocess them.
Note:
You are not prompted about corruption in archives that have not recently been read by PI
Data Archive. When PI Data Archive next accesses that archive, for example to query for
data or write new data, it uses that opportunity to check for corruption.
Select one or more archives to reprocess; they are reprocessed sequentially. The Archives tool
shows the progress of the reprocessing job and at completion provides the status of the
operation.
Note:
If you need to reprocess the primary archive, you must first perform an archive shift. For
more information, see Force an archive shift.
While the archive is being reprocessed, you can still read data from that archive. Also, new data
is held in memory and so is available to be read. After reprocessing completes, the data in
memory is written to the archive file.
The input archive is renamed using a suffix and a time stamp, and the output archive takes the
input archive's original name, start time, and end time. Output archives are online and
registered after reprocessing. All archives, both dynamic and fixed, are reprocessed to a fixed
archive.
If PI Data Archive shuts down while a reprocessing job is running, at startup the current job is
restarted and the existing queue of job requests is maintained.
For more information about using the Archives tool, see the PI SMT topic "Reprocess an
archive" in Live Library (https://livelibrary.osisoft.com).

Archive_ReprocessThreadCount
The Archive_ReprocessThreadCount tuning parameter is the number of worker threads
dedicated to reprocessing an archive file. On a low memory machine, only 1 thread will be used
regardless of the value of this tuning parameter. The parameter takes effect before archive
reprocessing. The default setting is half the number of processors on the server, the min: 1, and
max: processor count.

Informational errors during reprocessing or archive integrity checks


During reprocessing or an archive integrity check, you might encounter one of the messages
listed here, especially if an abnormal shutdown has occurred. For example:

104 PI Data Archive System Management Guide


Archives

• The [-16305] message indicates that the events within the archive record are not in order. It
is typically displayed in conjunction with [-16302].
• The [-16302] message indicates that the chain for the index and overflow record is broken.
These messages are informational and are typically non-fatal. In some cases, there might be
some data loss depending on the nature of the corruption.
If you get these messages during an archive integrity check, repair the affected archive by
reprocessing it. After the archive is reprocessed, a report of all errors that were encountered
and resolved is shown.
If you get these errors while reprocessing an archive, the messages are informational and the
reprocessing utility will attempt to repair the discrepancies that were found.
Message number Message text
-16300 Invalid backwards chaining of overflow
-16301 Invalid backwards chaining of index
-16302 Overflow record not found in index records
-16303 Index entry referenced by multiple overflow
records
-16304 Out-of-order overflow record in index record
-16305 Out-of-order event found in overflow record
-16306 Event marked as annotated with no annotation
handle
-16307 Annotation record not found for annotated event
-16308 Annotation record referenced by multiple events
-16309 Index not matching overflow record start time
-16310 Event before archive start time
-16311 Event after archive end time
-16312 Unexpected data type for index record
-16313 Index start time doesn't match archive start time
-16314 First overflow record has a previous record
-16316 Unexpected data type for index record
-16317 Invalid archive file number
-16318 Circular chaining of overflow record
-16319 Circular chaining of index record
-16320 Too many errors, filtering non-fatal errors
-16321 Event at archive end time
-16322 Archive consistency check detected errors
-16323 Too many warnings, filtering additional warnings
-16324 Too many index records

Archive corruption informational errors


PI Data Archive sets a flag when corruption is detected within the archive.

PI Data Archive System Management Guide 105


Archives

If you get these messages during an archive integrity check, repair the affected archive by
reprocessing it. To see how to run an archive integrity see "Verify the integrity of the archive
files " in Live Library (https://livelibrary.osisoft.com). After the archive is reprocessed, a report
of all errors that were encountered and resolved is shown.
If you get these errors while reprocessing an archive, the messages are informational and the
reprocessing utility will attempt to repair the discrepancies that were found.
Messag Message text Is corruption detected, setting the corrupt flag?
e
number
-11001 Record header version mismatch Yes
-11002 Record header data mismatch Yes
-11018 Corrupt overflow or primary record Yes
pointers
-11064 Record header recid mismatch Yes
-11065 Record header chain pointer Yes
mismatch
-11141 Too many events on record load, Yes
most likely a corruption

Configure number of archives monitored for read-write errors


By default, PI Archive Subsystem stops writing time-series data to archive files after detecting
an error when reading or writing data. This feature protects archive data. The
Archive_DisableArchivingOnIOError tuning parameter enables this feature.

Procedure
• To set the number of archives monitored, specify a number in the
Archive_DisableArchivingOnIOErrorRange parameter.
PI Archive Subsystem monitors the specified number of files for read-write errors, starting
with the primary archive. For example, if set to 3 (the default value), PI Archive Subsystem
monitors the primary archive plus the two previous archives. A value of 0 indicates that PI
Archive Subsystem monitors all files.
Note:
If PI Archive Subsystem loses its connection to the storage device where the primary
archive resides, it does not try to reconnect to the archive. Data flows into the event
queue, but is not stored in the archive file. To reconnect and store data in the archive,
stop and restart the subsystem. For more information, see the Knowledge article
Supported storage device types for PI Data Archive archive files.

Prevent archive changes


To protect a historical archive from being overwritten, OSIsoft recommends using the
EditDays tuning parameter to set a time limit for archive changes. Using the EditDays
parameter, you specify a time limit in number of days prior to the current time in which events
can be inserted or edited. The snapshot rejects events with time stamps earlier than the limit.
By default there is no limit.

106 PI Data Archive System Management Guide


Archives

While it is possible to set an archive file to read-only, doing so can result in data loss. Read-only
archive files cannot participate in archive shifts or be modified.

Topics in this section


• Modify the EditDays tuning parameter
• Set an archive to writable or read only

Modify the EditDays tuning parameter


You can modify the value of the EditDays parameter with the number of past days where
events can be modified in the Snapshot or Archive databases.

Procedure
1. Select Start > PI System Management Tools > Operation > Tuning Parameters.
2. In the Collectives and Servers pane, select the appropriate PI Data Archive server.
3. Click the Snapshot tab for the subsystem where you want to edit the tuning parameter
value.
4. If necessary, add the EditDays tuning parameter to the list. See Add a tuning parameter to
the list.
5. Right-click the EditDays parameter and click Edit.
6. Enter a value and click OK. A zero value means no time check is done.
7. For the changes to take effect, restart the PI Data Archive server.

Set an archive to writable or read only


Procedure
• To change the protective Write flag for an archive file, right-click the archive in list view and
select the appropriate option.
◦ To make a read-only archive writable, select Make Writable.
◦ (Not recommended) To make a writable archive read only, select Make Read-Only.
Caution:
Setting an archive to read only can result in data loss. The preferred method for
preventing archive changes is to use the EditDays tuning parameter to set a time
limit for archive changes.

Export a list of archives to a file


Procedure
1. Select Start > PI System Management Tools > Operation > Archives.
2. Select an archive from the target PI Data Archive server from the list.
3. Click Export Archive List and select a file type.

PI Data Archive System Management Guide 107


Archives

4. In the Save Archive List As window, select a location to store the archive file.
5. Click Save.

Create a .bat registration file


Procedure
1. Open SMT
2. Select Operation
3. Select Archives
4. Select Registration BAT File

Move archive files


In some cases, you may need to move archive files. For example, you might install a new hard
disk and want to move archives to it.

108 PI Data Archive System Management Guide


Archives

Procedure
1. Edit the Archive_AutoArchiveFileRoot tuning parameter to configure the full path to
the new archive directory. The new primary archive is created in the new directory. Run the
command pidiag -updateFolderSecurity to make sure proper permissions are set on
the new path.
The new primary archive is created in the new directory.
2. Force an archive shift.
3. Move the non-primary archives:
a. Unregister the non-primary archives.
b. Move the non-primary archives and associated annotation files to a new directory.
c. Re-register the non-primary archives.

Delete an archive event


The following procedure is useful for deleting a single archive event or a small number of
archive events. To delete large amounts of data, use the AF SDK ReplaceValues methods. For
more information, see the AF SDK Reference topics AFData.ReplaceValues Method (https://
techsupport.osisoft.com/Documentation/PI-AF-SDK/html/
Overload_OSIsoft_AF_Data_AFData_ReplaceValues.htm) and PiPoint.ReplaceValues Method
(https://techsupport.osisoft.com/Documentation/PI-AF-SDK/html/
M_OSIsoft_AF_PI_PIPoint_ReplaceValues.htm).
You cannot undo a delete. Deleting large amounts of data may affect availability of an online PI
Data Archive server. If you are deleting data on a periodic basis, investigate the root cause and
consider alternatives to deleting data in bulk. Possible alternatives could be using appropriate
exception and compression settings, increasing the available disk space, moving older archives
to a second tier storage, and so on.

Before you start


Before deleting real data, OSIsoft strongly recommends that you practice deleting small
amounts of data on a test system.

Procedure
1. Back up your data.
2. In the Servers pane, select the server from where you want to remove data.
3. In the System Management Tools pane, select Data > Archive Editor.
4. Right-click the value you want to delete and select Delete.
5. Click Save.
Note:
There is no prompt to confirm deleting values.

Delete digital state archive events by using piconfig


If you need to delete the values for a digital state, use piconfig as shown here.

PI Data Archive System Management Guide 109


Archives

Procedure
1. Copy the following commands into a text file called DELEVENTS.TXT and save it in the pi
\adm directory.
This example uses the PI point, cdt158.
*DELEVENTS.TXT
@table piarc
@mode list
@istructure tag, starttime, endtime, count
@ostructure tag, time, status
@ostructure ...
@timf 9
@sigd 9
@output tmpdelevents.dat
cdt158,*-6h,*,*
*@exit - uncomment this to exit and review before deleting
@mode edit
@modify mode=remove
@istructure tag, time, value
@input tmpdelevents.dat
@exit
2. Edit DELEVENTS.TXT and replace cdt158 with the PI points (tags) and time ranges from
which you want to delete.
If you want to delete events from multiple PI points, add multiple entries. For example:
cdt158,*-6h,*,*
cdm158,y,t,10000
sinusoid,*-1m,*,20

The format is: PI point name, starttime, endtime, count of events you want
to delete
3. Open a command prompt, go to the PI\adm directory and run piconfig with
DELEVENTS.TXT as input.
C:\PI\adm>piconfig < delevents.txt

Delete an archive
You must unregister an archive before you can delete its files.

Procedure
1. In PI SMT, select Operation > Archives.
2. Right-click the archive and select Unregister Archive.
3. Open Windows Explorer and navigate to the archives folder (by default, C:\Program
Files\PI\arc).
4. Delete the archive file (archive_name.arc) and the related annotation file
(archive_name.arc.ann).

Check for corrupt archives


By using the PI SMT Archives tool, you can easily verify that you do not have any corrupt
archives. It is especially important to check that:

110 PI Data Archive System Management Guide


Archives

• The primary archive is not corrupt.


• If you are backfilling, the archive you are backfilling to is not corrupt.
The PI SMT Archives tool flags corrupt archives and enables you to reprocess them while they
are online. For more information, see Archive reprocessing.

Backfilling management
Backfilling is the process of importing historical data from another source into PI Data Archive.
OSIsoft offers several interfaces for backfilling, including the PI Relational Database (RDBMS
via ODBC), the RDBMSPI Interface, and the Universal File and Stream Loader Interface (UFL).

Topics in this section


• Best practices for backfilling
• Prepare PI Data Archive for backfilling
• Backfill a new archive
• Backfill existing archives from new PI points
• Clear the Pt Created snapshot
• Backfill data with a piconfig script

Best practices for backfilling


During backfilling, data in files is sent to PI Data Archive at a rate that is much higher than the
rate of the control system. To minimize the load on PI Data Archive, follow these
recommendations.

• To avoid any burden on your main production server and risk to your real data, do
backfilling jobs on an offline PI Data Archive server.
• To avoid archiving unnecessary data and ensure efficient backfilling, backfill with
compression.
• Points for all backfilled data must be defined in the point database.
• Process data from all points in small batches, such as one day each.
• Backfill data in chronological order, from oldest to newest, within each point. If you backfill
out-of-order data, it is not compressed.
For a large amount of data, follow these additional recommendations.
• Consider writing a custom application to do the backfilling.
• Before backfilling, run a backfill test with a smaller time range to ensure that the data
imports properly. During the test, check the archive and snapshot statistics to see how the
backfilling affects PI Data Archive performance, and troubleshoot any other issues as
needed.

PI Data Archive System Management Guide 111


Archives

Prepare PI Data Archive for backfilling


Procedure
1. Evaluate the data that you are backfilling.
Determine the number and configuration of new tags, the time period covered by all tags,
and the approximate amount of data you need to import.
2. Create the points to backfill.
If the points correspond to active interfaces, make sure current data is not being sent to the
point from the interface. One way to do this is to create the points with the Scan attribute
set to 0 (zero, which is off), or set the Point Source attribute for the points to L for Lab point.
You can change these later. (You can import data into existing points that already contain
values, but you will not be able to compress the data.)
3. Check existing archive files using PI SMT Archives tool or the piartool -al command.
Note the start time, end time, and filename (including the path) of all archives within the
time range of the backfill data.
4. Make a backup of your PI Data Archive server, including all archives you plan to reprocess (if
necessary) and backfill. See PI Data Archive backups.
5. Create additional archives as needed.
If the data to be backfilled include values prior to the oldest archive, create a new dynamic
archive with a Start Time at or earlier than the oldest time stamp, and an End Time equal to
the start time of the current oldest archive. See Archive creation with PI SMT.
6. Verify that the oldest value is now in the snapshot for new points.

Backfill a new archive


Note:
By default, data is compressed. If you do not want compression, disable the
Snapshot_DoNotReplacePTCreatedOnOOO tuning parameter.

Before you start


Before completing the following procedures, be sure to complete the steps in Prepare PI Data
Archive for backfilling.

Procedure
1. Install PI Data Archive, start the PI Data Archive server, create all points, and then stop the
PI Data Archive server.
2. Isolate the PI Data Archive server from all incoming process data.
To do this, follow one of these methods:
◦ Shut down PI interfaces on all PI API and PINet nodes.
◦ Disallow all PI API connections at the server. Start piconfig without starting PI Data
Archive. Disregard messages about failure to connect and enter:
@table pifirewall
@mode edit,t

112 PI Data Archive System Management Guide


Archives

@istr hostmask,value
"*.*.*.*",DISALLOW
Note:
Entries that allow access to specific names or addresses override the DISALLOW
option. Edit all other entries to DISALLOW. Local connections are not affected by
PIFirewall table entries; verify that applications that may write data are not
running.
3. Start the PI Data Archive server with the -base parameter. This ensures that PI Data
Archive starts up with only the minimum required subsystems. Enter the command:
pisrvstart.bat -base
4. Use piartool -acd to create and register one or more archive files for the backfilling
period. You can also use the Archives tool in PI SMT to create multiple files for backfilling.
For more information, see Create multiple archives for backfilling.
5. If the Snapshot_DoNotReplacePTCreatedOnOOO parameter is enabled, delete all the Pt
Created events from the snapshot. For more information, see Clear the Pt Created
snapshot.
6. Depending on whether you are using compression, do one of the following:
◦ To backfill with compression, send the source data in time-sequential order with the
oldest data first.
Note:
Make sure that data sources are not writing to any points that are being backfilled.
Otherwise, compression is bypassed for data that is written prior to the snapshot
time.
◦ To backfill without compression, specify the start time as the time stamp of the oldest
data to be backfilled; and specify the end time as the start time of the oldest archive as
listed by piartool -al. The data that you backfill is not compressed, since the start
time of the oldest archive occurs prior to the snapshot time.
If, after backfilling has started, you discover that the backfill archive requires more than 2
TB of disk space, delete the backfill archive and create multiple dynamic archives to store
the data. Divide the target time range between the dynamic archives, and then retry the
data backfilling.
7. If you used the technique of modifying the PIFirewall table in step 2 above, run piconfig to
either change the hostmask value to ALLOW or delete the hostmask.
8. Start the remaining PI Data Archive applications by running pisrvstart.bat without the
-base flag.

Backfill existing archives from new PI points


Procedure
1. Add the new points to the existing archive. Use PI Builder to batch load points or use the PI
SMT Point Builder tool to create individual points.
2. If the points correspond to active interfaces, make sure that current data is not being sent to
the point from the interface.

PI Data Archive System Management Guide 113


Archives

3. Use the PI SMT PI Archive Manager tool or the piartool -al command to check your
existing archive files. Note the start time, end time, and filename (including the path) of all
archives within the time range of the backfill data.
4. Back up your PI Data Archive server including all archives that you plan to backfill.
5. Data is compressed by default. If you do not want compression, enable the
Snapshot_DoNotReplacePTCreatedOnOOO tuning parameter.
6. Backfill the data.
Note:
For more information on backfilling data, see "Backfill data with a piconfig script" in
Live Library (https://livelibrary.osisoft.com).

Clear the Pt Created snapshot


Note:
If the Snapshot_DoNotReplacePTCreatedOnOOO tuning parameter is not set to 1 (the
default is 0), skip this procedure.
To delete a Pt Created snapshot value one point at a time, use the Archive Editor in PI SMT.
To export points with snapshot values of Pt Created and delete those values from the
snapshot table, follow these steps.

Procedure
1. Create a piconfig script file called gettags.txt. Include the following commands in the
file:
@table pisnap
@select status = Pt Created, tag = *
@ostr tag, time
@output snap_to_delete.txt
@ends
2. Save and close the gettags.txt file.
3. Open a command prompt.
4. Go to the PI\adm directory.
5. Run piconfig, redirecting the previously created script file. (If you used a different path or
filename for your script file, substitute the actual path and file name of your script file for c:
\gettags.txt in the following example.)
Piconfig < c:\gettags.txt
6. Open the snap_to_delete.txt file from the PI\adm directory to verify which points have
Pt Created value in the snapshot. Edit the file to remove any points that you do not plan to
backfill.
7. Save the snap_to_delete.txt file.
8. Run piconfig with the following commands:
@table piarc
@mode edit, t
@istr tag, time
@modi mode = remove
@input snap_to_delete.txt
@ends

114 PI Data Archive System Management Guide


Archives

Backfill data with a piconfig script


OSIsoft recommends using an OSIsoft interface (such as UFL, RDBMS, or RDBMSPI) to backfill
data into PI Data Archive. However, you can also use a piconfig script to backfill data.

Procedure
1. Create a comma-separated text file containing the data.
Format your text file as follows:
◦ One tag value per line.
Each line must include the tag name, time stamp, and value. The time stamp must be in
the format that is shown in the following example:
A1HV074B,08-Aug-89 11:00:00,3659

Note:
For more information about PI time, see "PI time expressions" in Live Library
(https://livelibrary.osisoft.com).
◦ Values from multiple tags can be included in a single file.
◦ Values must be in time order (oldest to newest) for each tag to backfill with compression.
2. If you have a large amount of data, separate the data into smaller files so you can easily
manage and track the backfilling (for example, one day at a time)
3. Add the following piconfig script to the beginning of the file:
@mode edit,t
@table pisnap
@istr tag, time, value
A1HV074B,08-Aug-89 11:00:00,3659
... [followed by the rest of your data]
4. Save the file as a *.csv file, such as data.csv.
5. Test the piconfig script with a small sample of data.
Always run a backfill test with a small amount of data first, and then do the rest of the data.
This way you can verify your piconfig script and make sure that the data is importing
properly. Check the archive and snapshot statistics during the test to see how the backfilling
affects PI Data Archive performance.
Check the archive and snapshot statistics during the test to see how the backfilling affects PI
Data Archive performance.
6. Force an archive shift to avoid backfilling into a primary archive if you are backfilling on a
production system. The easiest way to do this is with the PI SMT Archive Editor plug-in.
7. Open a command prompt window.
8. Change to the PI\adm directory.
9. Run piconfig and redirect your previously prepared data file. Substitute the actual path
and file name of your prepared text file for c:\tags\data.csv in the example below:
piconfig < c:\tags\data.csv
10. Verify your data using DataLink or ProcessBook.

PI Data Archive System Management Guide 115


Archives

Offline archive file management with piarchss


The offline archive utility uses the piarchss executable that runs the PI Archive Subsystem.
The offline archive utility works with archive files that are not registered with a running PI
Data Archive server (that is, offline files). PI Data Archive server can continue to archive
current data while you work on offline archive files. If you attempt to use the offline archive
utility on a registered archive file, the utility unregisters the file.
Use the offline archive utility to:
• Combine archives
• Divide an archive file into smaller files
• Extract a specific time period from an archive
Note:
To recover a corrupted archive, see Archive reprocessing.
Note:
Starting in PI Data Archive 2016 R2, if an event-queue file becomes corrupt, it is
recovered automatically, whenever possible. For more information, see Automatic event-
queue reset.
The offline archive utility can create fixed or dynamic archive files. Created files have the same
format as archive files created by piartool -ac. Every archive file has a parallel annotation
file created with the archive. The annotation file, which has the .ann file extension, must
remain in the same directory as its associated archive file.

Topics in this section


• Tips for using the offline archive utility
• Display unregistered archive information
• Offline archive utility command-line options
• Run the offline archive utility
• Time ranges
• Offsets for event time stamps (-tfix -tfixend)
• Merge or divide archives

Tips for using the offline archive utility


• If the input archive is the primary archive, you cannot unregister it. To work around this,
force an archive shift using the piartool -fs command or temporarily shut down PI
Archive Subsystem.
• If the output file does not exist, the utility creates it.
• If a full path name is not specified for the output archive, the utility places the output
archive in the current directory.
• At the end of processing, neither the input nor the output archives are registered.

116 PI Data Archive System Management Guide


Archives

• The input archive’s integrity is checked prior to being used. To disable this behavior, use the
–noinputcheck option.
• By default, the offline archive utility creates dynamic archives. To specify a fixed archive, use
the -f option.
Note:
Dynamic archives become non-shiftable once a single overflow record is generated,
but remain shiftable if no overflow records are generated.
• You can run the offline archive utility while PI Data Archive including PI Archive Subsystem
is running. At a minimum, the PI Network Manager, PI Base Subsystem, and PI Snapshot
Subsystem must be running, because the utility needs to access the PI point database during
offline operations.

Display unregistered archive information


You can only use this command if the archive file is not registered, or if PI Data Archive is down.
If you use it with a registered archive file, the pidiag -ahd command returns an access error.

Procedure
1. At a command prompt, go to the PI\adm directory.
2. Type the following command:
pidiag -ahd path
where path is the path to the unregistered archive.
For example:
pidiag -ahd d:\pi\dat\piarch.001
The output is similar to the output from the piartool -al command for a single archive
file:
D:\PI\adm>pidiag -ahd d:\pi\dat\piarch.001
PIarcfilehead[$Workfile: piarfile.cxx $ $Revision: 129 $]::
Version: 8 Path: D:\PI\dat\piarch.001
State: 3 Type: 0 (fixed) Write Flag: 1 Shift Flag: 1
Record Size: 1024 Count: 131072 Add Rate/Hour: 27.9
Offsets: Primary: 1837/65536 Overflow: 106950/131072
Annotations: 1/65535 Annotation File Size: 2064
Start Time: 16-Aug-09 23:08:12
End Time: Current Time
Backup Time: 25-Aug-09 14:26:11
Last Modified: 24-Sep-09 14:31:27

Offline archive utility command-line options


The offline archive utility supports several options. You may enter options in any order. The
offline archive utility requires the -if and -of options. Subsequent sections discuss how you
might use some of the options. To see all available options, type piarchss -?.
Option Name Description
-acceptprompts Accept all When specified, all prompts the utility present during the
prompts reprocessing are accepted by default.

PI Data Archive System Management Guide 117


Archives

Option Name Description


-dup Duplicate Allow input archive records with duplicate times. By default
records duplicates are ignored.
-evq Event queue Indicate that the input file is a PI 3 event-queue file (for
file example, pimapeq.dat).
-f size Make output Specify size in MB. If size = 0, the input file size is used. Default
archive a fixed is dynamic archive.
archive
-filter start end Filter Process events only within the time range (inclusive) specified.
Requires both time stamps. See Time filters.
-filter_ex start Filter Process events only within the time range (inclusive of start
end excluding end time; exclusive of end time) specified. Requires both time
time stamps. See Time filters.
-id pathname Specify ID Specify the ID conversion binary path and file name. See
conversion Specify an ID conversion file.
file
-idci input_file - ID conversion Create ID conversion file from specified input file.
idco outfile file creation
-if pathname Input archive Required. The full path, including drive letter is required. This
file is true for all file arguments passed.
-noinputcheck Disable input Disables the integrity check of the input archive.
check of input
archive
-oet option Output file Specify the end time for the output file. See Specify an end time
end time for the output file for details.
-of pathname Output Required.
archive file
-ost option Output file Specify the start time for the output file. See Specify a start
start time time for the output file for details.
-outputcheck Enables After reprocessing is complete, the output archive will be
checking checked to ensure it has integrity.
output archive
-silent Silent mode Suppress warning messages.
-tfix Time fix Apply a specified time transformation to input data. See Offsets
for event time stamps (-tfix -tfixend).
-tfixend time_stamp Time fix end Specify a time stamp after which no time transformation is to
be performed. Optional; only used in conjunction with –tfix.
-tzf pathname Time zone Use when input is different from standard DST.
specification
file
-vah Validate Apply a validation algorithm. Multiple events referencing a
annotation single annotation are detected and fixed. Batch Database
handles annotations are checked for consistency.

Run the offline archive utility


To run the offline archive utility (piarchss), enter an input archive file and an output archive
file, along with relevant command parameters.

118 PI Data Archive System Management Guide


Archives

Procedure
1. At a command prompt, go to the PI\bin directory
2. Type the following command:
piarchss -if inputPath -of outputPath
where inputPath is the full path (including file name) of the input archive file and
outputPath is the full path (including file name) of output archive file.

Results
The offline archive utility takes the input file, processes it according to the command
parameters, and then outputs the processed file to the specified location. The offline archive
utility does not modify the input file under any circumstances.

Topics in this section


• Exit codes for offline archive utility
• Effect of reprocessing on the digital state
• Specify an ID conversion file

Exit codes for offline archive utility


To facilitate batch file processing, the offline archive utility returns an exit code to the
operating system.
Code Definition
0 No errors—at least one input record processed.
1 Errors during input phase.
2 No processing errors—0 records processed, possibly an empty input file.
<0 An error returned from the output processing check log messages.

Effect of reprocessing on the digital state


Digital states are stored in the archives as offsets in a digital state set. The digital state set
number is registered in every archive record of a digital point. System digital states can appear
in any record.
Offsets are preserved when an archive is reprocessed, but the digital set becomes the current
digital set of the point. This can cause confusion when the digital state of a point is changed.
For example, if data is stored for a point with a set of On,Off this data amounts to 0 and 1. Later
the point is changed to use a set with Open, Close. When reprocessed, the old data displays as
Open and Close. This behavior could be desired in some cases and confusing in others.

Specify an ID conversion file


Use the -id option to specify an ID conversion file when reprocessing archives, such as when
moving a PI archive file to a different PI Data Archive server. The ID conversion file is a binary

PI Data Archive System Management Guide 119


Archives

file that maps the source archive point ID into the target system point ID. When you specify an
ID conversion file, the offline archive utility processes and converts points included in the file.
Always use this option when bringing an archive file from another PI Data Archive server.
Create the binary file from an input text with the -idci option:
piarchss -idci ID_conversion_input_file -idco ID_conversion_binary_file

The ID_conversion_input_file is the full path and file name for the input text file.
The ID_conversion_binary_file is the full path and name for the binary file to be created.
The offline archive utility reports any point in the input file that does not exist in the target
system.

Time ranges
You can specify the time range of the records that the offline archive utility processes, and you
can specify the start time and end time of the output file that the offline archive utility
produces.

Topics in this section


• Time filters
• Specify a start time for the output file
• Specify an end time for the output file

Time filters
To process events that occurred during a specific time period, use a filter flag with piarchss.

• -filter
Specifies the period between the start time and end time, and includes both the start time
and end time. The offline archive utility discards events outside this range. The usage is:
piarchss -filter starttime endtime
• -filter_ex
Specifies the period between the start time and end time, and includes the start time but
excludes the end time. The offline archive utility discards events outside this range. The
usage is:
piarchss -filter_ex starttime endtime
For both flags, the start time must be before the end time.

Specify a start time for the output file


To specify the start time for the output file, use the -ost flag with the piarchss command.
piarchss -ost option

Where option is one of the following:

120 PI Data Archive System Management Guide


Archives

Option Description
input Sets the start time to the start time of the input file. This is the default
behavior.
event Sets the start time to the time of the first event in the input file.
time Sets the start time to the specified time string. The following rules apply:
• Specify times in fixed or reference PI time format. Time offsets are not
supported.
• Enclose times that contain spaces in double quotes.
• If only a date is specified, the time defaults to 00:00:00 (midnight).
• Output file start and end times must differ by at least one second.
Example time strings:
"22-JAN-17 23:59:59"
23-JAN-17
21-Feb

NFE Sets the start time to the time of the first event that passes the time filter.

Example
For example, the following command specifies the output archive start and end times.
piarchss -if D:\pi\dat\bigfile.dat -of D:\pi\dat\january.dat
-filter_ex "1-jan-02" "1-Feb-02" -ost "1-jan-02" -oet "1-feb-02"

Note:
If the start or end time contains a space, for example 1-Jan-02 12:00:00, you must
enclose the date string in double quotes.

Specify an end time for the output file


To specify the end time for the output file, use the -oet flag with the piarchss command.
piarchss -oet option

Where option is one of the following:


Option Description
input Sets the end time to the end time of input file. This is the default
behavior.
event Sets the end time to the time of last event in input file.
time Sets the end time to the specified time string. The following rules
apply:
• Specify times in fixed or reference PI time format. Time offsets
are not supported.
• Enclose times that contain spaces in double quotes.
• If only a date is specified, the time defaults to 00:00:00
(midnight).
• Output file start and end times must differ by at least one second.
Example time strings:
“22-JAN-17 23:59:59”
23-JAN-17
21-Feb

PI Data Archive System Management Guide 121


Archives

Option Description
NFE Sets the end time to time of last event which passes the time filter.
primary Sets the end time to indicate the archive is a primary archive.
NoChange End time is not altered.

Example
For example, the following command specifies the output archive start and end times.
piarchss -if D:\pi\dat\bigfile.dat -of D:\pi\dat\january.dat
-filter_ex "1-jan-02" "1-Feb-02" -ost "1-jan-02" -oet "1-feb-02"

Note:
If the start or end time contains a space, for example 1-Jan-02 12:00:00, you must
enclose the date string in double quotes.

Offsets for event time stamps (-tfix -tfixend)


Offsets, as a function of time, are defined in the time conversion file. Use offsets to apply
corrections to times on systems with incorrect time stamps.
To add a given time offset to every event:
-tfix conversion_file

The optional -tfixend parameter allows you to specify a time stamp after which no time
stamp corrections are performed. For example, the following combination of -tfix and -
tfixend specifies to perform the time stamp corrections specified in the file
conversion_file.txt and to not modify any event time stamps at or after 13:00:00 January
1, 2010:
-tfix conversion_file.txt -tfixend "1-jan-2010 13:00:00"

Time conversion file format


Note the following about the time conversion file format:
• Lines starting with # are comments.
• Empty lines and white spaces are ignored.
• Data lines have the format:
StartTime, offset

StartTime can be expressed as UTC - seconds since 1/1/70 or as PI local time-stamp string.
UTC time stamps and strings cannot be intermingled, the first format is assumed for all
entries.
Offset is a number of seconds added to the time stamp of every event within the time range.
Fractional seconds are not supported. Offset applies from time stamp up to, but not
including, the next time stamp.

Time conversion file examples


Move entire archive ahead by 1 hour:
0,3600
2000000000,3600

Move entire archive ahead by 1 hour (another format):

122 PI Data Archive System Management Guide


Archives

01-Jan-70 00:00:00,3600
01-Jan-30 00:00:00,3600

Apply a missed DST conversion to an archive that covers the summer of 2016:
01-Jan-16 00:00:00,0
13-Mar-16 02:00:00,3600
06-Nov-16 02:00:00,0
31-Dec-16 23:59:59,0

Apply the time adjustments for each time period as a series of UTC values and offsets:
814953600,-61200
828871200,-57600
846403200,-61200
860320800,-57600

Merge or divide archives


Archive files are organized according to the time ranges that they span. Occasionally, you might
find it useful to change the organization of your archive files. Use the offline archive utility to:
• Combine archive files with overlapping dates into one archive file
• Combine archive files with adjacent time ranges into one archive file
• Divide an archive file into smaller archive files, each covering a portion of the original time
span

Topics in this section


• Merge multiple archives into a single archive
• Divide an archive into smaller archives

Merge multiple archives into a single archive


To combine several archives, invoke the offline archive utility (piarchss) once for each input
file, using the same output file for all the input files. Start from the oldest input file and
continue in ascending time order (the offline archive utility will not work in descending or
random time order). For example:
piarchss -if D:\pi\dat\oldest.dat -of D:\pi\dat\bigfile.dat
piarchss -if D:\pi\dat\newer.dat -of D:\pi\dat\bigfile.dat
piarchss -if D:\pi\dat\newest.dat -of D:\pi\dat\bigfile.dat

In this example, bigfile.dat does not exist prior to the operation. The first session creates
the file and the second and third sessions add events to the file. By default, the utility creates
the file as a dynamic archive. After you create the file, you can register the archive and PI
Snapshot Subsystem can add events to the archive file.
Any of the three input files that were registered prior to the operation are unregistered during
the operation. When the operation is complete, you can register them again. Dynamic archives,
which are the default type created by the offline utility, are not shiftable.
You can move the output file's end time forward as required, but you cannot change the start
time after creation.
Archives with an unknown end time should be processed into a new archive to determine the
actual end time. The resulting archive can then be merged chronologically. Merging a series of

PI Data Archive System Management Guide 123


Archives

archives with overlapping dates requires processing the archive with the oldest start time first,
then process the remaining in chronological order based on the archive end times.
For more information about using the piarchss utility, see Offline archive utility command-
line options and Run the offline archive utility.

Divide an archive into smaller archives


To break a single archive into smaller archives, invoke the offline archive utility once for each
output file and use the same input file for all the outputs. Each invocation, specify a different
start and end time in absolute PI time format.
For example, the following statements divide an archive into two smaller archives:
piarchss -if D:\pi\dat\bigfile.dat -of D:\pi\dat\january.dat
-filter_ex "1-jan-02" "1-Feb-02" -ost "1-jan-02" -oet "1-feb-02"
piarchss -if D:\pi\dat\bigfile.dat -of D:\pi\dat\february.dat
-filter_ex "1-feb-02" "1-mar-02" -ost "1-feb-02" -oet "1-mar-02"

In this example, january.dat and february.dat do not exist prior to the operation. The
offline archive utility creates them as dynamic archives by default. After the offline archive
utility creates the files, you can register them with piartool -ar, and then add events to the
archive files in the usual way. Because these output archives are dynamic archives, they are not
shiftable.
The filter_ex option specifies the period between the start time and end time, and includes
the start time but excludes the end time.
The output archive start and end times are explicitly specified.
Note:
If the start or end time contains a space, for example 1-Jan-02 12:00:00, you must
enclose the date string in double quotes.
Excluding the -ost and -oet flags results in the default behavior. For more details, see Specify
a start time for the output file and Specify an end time for the output file.
If the input file was registered prior to the operation, it will be unregistered during the
operation. When the operation is complete, you can use piartool -ar to register the file
again.
For more information about using the piarchss utility, see Offline archive utility command-
line options and Run the offline archive utility.
For more information about using the piartool utility, see "piartool command-line options" in
Live Library (https://livelibrary.osisoft.com).
For information about avoiding duplicate events when you split an archive, see the OSIsoft
Knowledge Base article, How to avoid duplicate events at the archive boundary when splitting
a PI archive (https://customers.osisoft.com/s/knowledgearticle?
knowledgeArticleUrl=KB00590).

124 PI Data Archive System Management Guide


PI Data Archive security
This section explains the basic management tasks for a PI Data Archive security configuration.
It does not explain how to plan and implement a new security configuration. To configure
security on a new PI Data Archive server or to upgrade an older PI Data Archive to version
3.4.380 or later, see the PI Data Archive Security Configuration Guide.

Topics in this section


• Security overview
• Manage authentication
• Manage authorization
• Tighten security

Security overview
PI Server security configuration has these main components:

• Manage authentication: Which users and applications can connect to PI Server?


• Manage authorization: What access permissions do authenticated users or applications
have on PI Server?
As system manager, consider taking additional steps to improve security on PI Server. The
basic steps are explained in Tighten security.

Manage authentication
The following authentication methods are listed in order from most secure to least secure (not
recommended).
Before PI Data Archive 2016 R2, trusts were typically used to authenticate PI interfaces, while
mappings were used for single sign-on for Windows users on PI Data Archive servers. With PI
API 2016 for Windows Integrated Security, Windows authentication extends to PI interfaces.
OSIsoft does not recommend using PI trusts or explicit logins for authentication. For a more
secure environment, OSIsoft recommends Windows Integrated Security.
Note:
PI API 2016 for Windows Integrated Security extends Windows authentication to API-
based client applications. If you choose to install PI API 2016 for Windows Integrated
Security, you can use only Windows Integrated Security for authentication. Both trusts
and explicit logins will fail. For more information, see "Security configuration" in Live
Library (https://livelibrary.osisoft.com).

• Windows User Accounts and Passwords


With this method of authentication, users log onto their Windows users accounts and are
automatically authenticated on PI Data Archive. They do not need to enter a separate PI
Data Archive account name and password. This is the most secure authentication method
available on PI Server.

PI Data Archive System Management Guide 125


PI Data Archive security

• PI Trusts
PI trusts allow applications to access PI Server without typing in a user name and password.
Do not use PI trusts for applications that support Windows authentication.

• PI Server User Accounts and Passwords


With this method of authentication, users can log onto PI Data Archive by typing in a PI user
account name and password. This is called an explicit login. Explicit logins are the least
secure way to authenticate on PI Data Archive. Configure your PI Data Archive for Windows
authentication and then disable explicit logins.

Topics in this section


• Authentication management with Windows security
• Interface authentication management with PI trusts
• Manage PI Data Archive user accounts and groups

Authentication management with Windows security


To configure PI Data Archive for Windows authentication, use PI identities and PI mappings.
Create a PI mapping between the PI identity and a Windows group (this might be an Active
Directory or local Windows security group). Authenticated Windows users are automatically
authenticated on PI Data Archive through the mapping.
Note:
PI identities are ideal for mappings because they do not imply management of users
directly on PI Data Archive. However, you can also use PI groups and users to create
mappings.
Basic management tasks for Windows authentication are:

• Mapping management
• Manage PI identities in SMT
• On upgraded systems, you might have legacy users and groups that you need to use in
mappings (Manage PI Data Archive user accounts and groups)
For fundamental instructions on planning and implementing this type of configuration, see the
PI Data Archive Security Configuration Guide.

Topics in this section


• Mapping management
• Manage PI identities in SMT

Mapping management
A mapping creates an association between an entity on Windows (such as an AD group) with
an entity on PI Data Archive (such as a PI identity).
You can create, delete and edit mappings using the PI SMT Mappings & Trusts tool.

126 PI Data Archive System Management Guide


PI Data Archive security

Topics in this section


• Windows side of the mapping
• PI Data Archive side of the mapping
• Mappings & Trusts tool
• Create a mapping in PI SMT

Windows side of the mapping


You can map a PI identity to an Active Directory user or group or to a local user or group.
Your PI mappings can use the following Windows resources:
• Any Active Directory (AD) Principal (user or group)
• Any local Windows user or group
If you use local Windows security, then the Windows user accounts on PI Data Archive must
exactly match the Windows user accounts on each client workstation. The account names, and
also the passwords must be identical on the server and all client machines. When a password
changes for a Windows user account, you must make that change on PI Data Archive and all
participating client machines.
Local Windows authentication is not as secure as AD authentication. If at all possible, use
Active Directory (AD) rather than local Windows security. Local Windows authentication is still
far more secure than individual PI user accounts.

PI Data Archive side of the mapping


On the PI Data Archive side of the mapping, you can use a PI identity, a PI user, or a PI group. It
is best to use a PI identity, for consistency. PI users and PI groups imply direct management of
users on PI Data Archive. If you are no longer managing users on PI Data Archive, this could
cause confusion for other PI Data Archive administrators. If you use PI identities only for
mappings or trusts and PI users/groups only for PI account management, then other
administrators can easily interpret your security configuration.
Note:
If you need to use a PI user account in a mapping, then disable explicit logins for that
account. PI user passwords are not secure.
For more information about configuring security, see "Security configuration" in Live Library
(https://livelibrary.osisoft.com).

Mappings & Trusts tool


The Mappings & Trusts tool in PI SMT allows you to configure mappings on your PI Data
Archive.
To use the Mappings & Trusts tool, choose Security > Mappings & Trusts. The tool has two tabs:
one for trusts and one for mappings. The Mappings tab lists all the PI mappings for all selected
PI Data Archive servers.

PI Data Archive System Management Guide 127


PI Data Archive security

Create a mapping in PI SMT

Procedure
1. In the Collectives and Servers pane, select the server or collective.
2. In the System Management Tools pane, select Security > Mappings and Trusts.
3. Select the Mappings tab.
4. In the toolbar, click the New button to open the Add New Mapping dialog box.
5. In Windows Account, enter an AD principal or a local Windows group or user. To select the
account either:
◦ Click the browse button to browse for the account.

◦ Type the account name, then click the resolve SID button to verify that this is a valid
account. If the account is valid, an SID appears in the field. Otherwise, a dialog box with
an error message opens.
6. In Description, enter a description of the mapping. There are no restrictions on the contents
of this field, and the field is optional.
7. In Server, choose the server where you want to create the mapping. This drop-down list
contains all the PI Data Archive servers that are selected under Collectives and Servers and
that are version 3.4.380 or later versions. Earlier versions of PI Data Archive do not support
mappings.
8. In PI Identity, enter a PI identity, group, or user.
To choose, click the browse button and open the Select PI Identity, PI Group, or PI User
dialog box. Make a choice in Type to filter the choices. In the list, choose either a PI identity,
a PI group, or a PI user, and then click OK.
OSIsoft recommends choosing a PI identity. PI users and PI groups represent an older
security model that involves managing individual user accounts on PI Data Archive. PI user
accounts and passwords are not as secure as Windows accounts.
9. Click OK to create the mapping.

Manage PI identities in SMT


Each PI identity represents a level of access to resources on PI Server. For example, one PI
identity might be allowed to create points, while another PI identity can be allowed to read
point data but not create new points.
When a mapping exists between a PI identity and a Windows group, all the users in the
Windows group are automatically authenticated on PI Server and granted the access
permissions defined for that PI identity.
You manage PI identities through the PI SMT Identities, Users, and Groups tool. This tool is
located under Security in PI SMT. By default, the identities, users, and groups for all selected PI
Data Archive servers appear in separate tabs. See the PI SMT online Help for instructions on
using the tool.

128 PI Data Archive System Management Guide


PI Data Archive security

Note:
If you are not connected to one or more PI Data Archive servers of version 3.4.380 or
later, then the Identities tab does not appear.

Interface authentication management with PI trusts


Before PI Data Archive 2016 R2, trusts were typically used to authenticate PI interfaces, while
mappings were used for single sign-on for Windows users on PI Data Archive servers. With PI
API 2016 for Windows Integrated Security, Windows authentication extends to PI interfaces.
OSIsoft does not recommend using PI trusts or explicit logins for authentication. For a more
secure environment, OSIsoft recommends Windows Integrated Security.
Note:
PI API 2016 for Windows Integrated Security extends Windows authentication to API-
based client applications. If you choose to install PI API 2016 for Windows Integrated
Security, you can use only Windows Integrated Security for authentication. Both trusts
and explicit logins will fail. For more information, see "Security configuration" in Live
Library (https://livelibrary.osisoft.com).
PI trusts compare the connection credentials of a connecting application to records in the trust
database. The connection credentials might include:

• Name of the connecting application


• IP address and netmask of the interface node
• Fully qualified host name of the interface node (such as apollo.osisoft.com)
• Short host name of the interface node (such as apollo)
Update PI trusts when the interface node changes host name or IP address. Use the PI SMT
Mappings & Trusts tool to view and manage your PI trusts.
Each PI trust is defined against a single PI identity, PI group, or PI user. When an interface
successfully authenticates through a trust, it gets the access permissions defined for the
associated identity, group, or user.
For details on creating tighter security, see PI Data Archive security.

Create a trust
Procedure
1. Under Servers (or if you have a collective deployment, Collectives and Servers), select the
server.
2. Under System Management Tools, select Security > Mappings & Trusts.
The Mappings & Trusts tool appears.
3. Select the Trusts tab.
4. Click the New button to open the Add Trust Wizard.
5. Select the PI Data Archive server name and enter a name for the trust (and, optionally, a
description). Click Next.

PI Data Archive System Management Guide 129


PI Data Archive security

6. Select the type of trust to add:


◦ PI-API application (this is the right choice for most PI interfaces)
◦ PI-SDK application on a Windows NT based OS
7. Click Next.
The next screens allow you to define optional information for the PI trust. If you leave a field
blank, then that information is not checked for the trust authentication. When you fill in
fields, then only applications with matching information can authenticate against this PI
trust.

◦ Application Name
This is slightly different for PI API and PI SDK connections.

▪ API
Connecting PI API applications send an identifier called an application process name,
or procname. This is a four-character string with an E appended (for example, the
procname for the Perfmon interface is PIPeE).

▪ SDK
The full name of the connecting application, including the extension, but not the path
(for example, PI-ICU.exe).

◦ IP Address
The IP address of the interface node.

◦ Net Mask
The net mask for the interface node (for example, 255.255.255.255).
For SDK connections only, you also have the following optional fields:

◦ Windows Domain
The Windows domain of the user who runs the application (for example, osi).

◦ Windows Account
The Windows user name of the user who runs the application (for example, my_account).
8. Select the PI identity that you want to use for this trust.
Applications authenticated through this trust have all the access permissions granted to this
PI identity. Alternatively, you can select a PI group or a PI user for this step.

Topics in this section


• Connection types for a PI trust
• Application name in a trust
• IP Information
• Windows account information
• Default trusts

130 PI Data Archive System Management Guide


PI Data Archive security

Connection types for a PI trust


When you configure a PI trust, you need to know the type of connection the trust will be used
for.
There are two different PI Data Archive connection types. Each PI interface is configured to use
one of these mechanisms (there are also a few interfaces that use both.) The two mechanisms
are:

• PI API connection: Most PI interfaces use the PI API to connect to PI Data Archive.
• PI SDK connection: Most client applications use PI SDK to connect to PI Data Archive.
The PI API and PI SDK connections both support Windows authentication, which is the most
secure authentication method available for the PI Data Archive server. OSIsoft recommends
that you always use Windows authentication when possible.
If you are not sure which connection type an interface uses, then consult the documentation for
that interface.

Application name in a trust


When you specify an application name in a trust, use the appropriate format for the connection
type:

• Applications that connect through the API send an identifier called an application process
name, or procname. This is a four-character string with an E appended. For example, the
procname for the Perfmon interface is: PIPeE
Note:
PI API versions before 1.6.0 always send a five-character string: 4 characters plus a
capital E. For PI API versions 1.6.0 and later, the name can be up to 8 characters,
without a trailing capital E.
• For applications that connect through the SDK, use the full name of the connecting
application, including the extension, but not the path. For example, the application name for
PI ICU is: PI-ICU.exe
If you are running the same PI interface on another PI Data Archive, then you can use PI SMT to
determine the correct application name. Select Operation > Network Manager Statistics. Find
the interface in the list. The application name is listed in the Name field.

IP Information
A PI trust can specify IP information about the computer running the PI interface or client
application for which you are defining the trust. To collect this information, run pidiag -host
on the computer where the interface or client application runs. This returns the connection
credentials as retrieved from the local operating system.

PI Data Archive System Management Guide 131


PI Data Archive security

Note:
• Using pidiag -host does not guarantee that you will get the right information. The
results depending on many factors, including the type of interface, the version of the
SDK (if SDK-based), and whether there are firewalls or NAT devices between the
interface computer and the PI Data Archive computer. If you have difficulty configuring
the trust, contact OSIsoft Technical Support.
• When applications run on machines with multiple network cards, you cannot predict
which credentials the application will send to PI Data Archive for the trust
authorization. OSIsoft thus recommends that you either avoid such configurations or
create a PI trust for every IP address on the machine where the application runs.

Windows account information


For SDK connections only, you can specify Windows account information as part of the PI trust.
This type of trust is not needed in the new security model because a PI mapping serves the
same purpose as a trust based on OS user name and Windows domain membership.

• Windows Domain
The Windows domain of the user who runs the application.

• Windows Account
The Windows user name of the user who runs the application.

Default trusts
PI Data Archive includes default trusts that guarantee access to all applications running on the
local machine. These default trusts are automatically recreated every time the system starts, to
ensure that they are always configured in their default state. Different versions of PI Data
Archive have different default trusts. The following list includes default trusts for PI Server
3.4.375 and later.
Trust name Description PI Data Archive version
!Proxy_127! Allows access for local PI System All versions
applications.

!PIServerName_FQDN! Used for communication Not needed for PI Data Archive


between primary and secondary versions 3.4.380 and later.
servers in a PI Data Archive
collective.

PI Data Archive versions 3.4.380 and later do not need the FQDN trust and it is not included in
new installations. However, that trust is not removed if PI Data Archive is upgraded from an
earlier version.

Manage PI Data Archive user accounts and groups


PI Data Archive has its own user identification and password security, which you manage
through PI user accounts. PI user accounts are not secure. Whenever possible, use Windows
authentication.

132 PI Data Archive System Management Guide


PI Data Archive security

You can assign users to one or more PI groups; each PI user has the access permissions defined
for that user, as well as the access permissions defined for all groups to which the user belongs.
PI users and PI groups are essentially legacy components. You can use PI users and PI groups in
trusts and in mappings. However, when you do that, you might create some confusion about
the role of the PI user or the PI group on the server. Do you use these components to manage
actual PI user accounts? Do you use them only for mappings and trusts? Or do you use them for
both? If you are creating a new component to use in a mapping or a trust, use a PI identity to
avoid confusion. For more information, see the OSIsoft YouTube video: watch?v=.
Manage users and groups through the PI SMT Security > Identities, Users, & Groups tool. By
default, the identities, users, and groups for all selected PI Servers appear in separate tabs. See
the PI SMT online Help for instructions on using the tool.
For more information about configuring security, see "Security configuration" in Live Library
(https://livelibrary.osisoft.com).

Manage authorization
Authorization consists of assigning and maintaining the access permissions defined for
resources on PI Data Archive.
You can control access to a wide variety of PI Data Archive resources, including points,
modules, archive configuration, backups, batches, audit trails, and so on.

Topics in this section


• Understanding access permissions old and new
• Where to set access permissions
• Set access permissions

Understanding access permissions old and new


PI Data Archive version 3.4.380 introduces a fundamental change in the access permissions
model. Therefore, how you set access permissions is dependent on the version of PI Data
Archive you are running.
The possible levels of access remain the same.

Topics in this section


• Servers 3.4.380 and later
• Servers earlier than 3.4
• PI access levels

Servers 3.4.380 and later


On PI Data Archive 3.4.380 and later, resources can define access permissions for an unlimited
number of PI identities, as the following illustration shows.

PI Data Archive System Management Guide 133


PI Data Archive security

Although the illustration shows PI identities, you can also define access permissions for PI
users and PI groups. There is no limitation on the number of users or groups. There is no
longer any concept of a resource owner or group, as there was in previous versions of PI Data
Archive.
PI Data Archive stores the settings for each object in an access control list (ACL). Each secure
object on PI Data Archive has an ACL that defines access permissions for that object. The ACL
lists each identity for which access permissions are set on that object. The ACL for the
TEST_POINT data in the illustration above would look like this:
Identity1:A(r,w) | Identity2:A(r,w) | Identity3:A(r) | IdentityN:A(r,w)

Access permissions for each PI identity are separated by a pipe (|) symbol. Each entry consists
of the PI identity name, then a colon (:) followed by the access specifier. The access specifier is
defined in the format: A(r,w). The A in this notation stands for Allow and r,w indicates the
allowed access rights – read and write, in this example.

Servers earlier than 3.4


Earlier PI Data Archive versions use the owner/group/world model for access permissions.
Each object can have one owner, which must be a PI user; and one group, which must be a PI
group. You can set the access for the owner, the access for the group, and the access for
everyone else (called world access).

134 PI Data Archive System Management Guide


PI Data Archive security

Each resource has one (and only one) associated group. When a user is not the owner of a
particular PI resource (such as a point or database), PI Data Archive checks to see if the user is
a member of the group that is associated with that resource. If so, then the user gets whatever
access level the group has.
Since each resource has only one associated group, you sometimes need to create additional
groups to give access to all the users who need it. For example, the following figure illustrates
an organization with three groups: Developers, Managers and Operators. One user is a member
of both the Developers and the Managers group.

Suppose that all the users in the Developers and Managers groups need read-write access to a
particular resource, such as the attributes for the Sinusoid point. Because a resource can have
only one associated group, you could create a group called DevMan that contains all the
developers and all the managers and then associate that resource with the new group.

PI Data Archive System Management Guide 135


PI Data Archive security

Typically, you create different PI groups for groups in your organization that need different
point access.

PI access levels
PI Server provides these standard levels of access permissions:

• Read-only access. Users can view the item, but they cannot edit it.
• Read-write access. Users can view and edit the item.
• No access. Users cannot view or edit the item.
Note:
No access is not the same as deny. There is no level for deny, as there is in Windows.

Where to set access permissions


The entries in the PI SMT Database Security tool control access to PI Data Archive resources at
the highest level.

Topics in this section


• Database security access permissions
• PI point access permissions
• PI module access permissions

Database security access permissions


The Database Security tool lists the resources for which you can configure access and shows
the current access permissions for each entry. To change these access permissions, you must
have read/write access to the PI database security (PIDBSEC) entry and have write access on
the database that you are editing. The PIDBSEC entry controls access to all the entries in the
table.
The table also includes the PIPOINT and PIModules entries, which control access to PI points
and PI modules respectively. You can further restrict access to points and modules by editing
the security directly on the point or module itself.
For example, suppose an identity called PIEngineers has read/write access for a point called
TEST_POINT but has read-only access to PIPOINT in the Database Security tool. Users with the
PIEngineers identity can view and edit TEST_POINT but cannot edit other points in the server.

Access control for basic PI Data Archive admin tasks


The following table lists basic PI Data Archive administration tasks and which tables in the
Database Security tool control access to each task.

136 PI Data Archive System Management Guide


PI Data Archive security

Administration task Table that controls the task


Managing archives PIARCADMIN (basic archive administration tasks:
archive creation, registration, shifts, and online
reprocessing) and PIARCDATA (archive data that is
not tag-specific, such as listing the archives;
archive troubleshooting tasks)
Managing backups PIBACKUP
Managing identities, users, and groups PIUSER
Manage mappings PIMAPPING
Managing trusts PITRUST
Managing auditing PIAUDIT
Creating/deleting points PIPOINT
Creating/deleting modules PIModules
Editing the database security table PIDBSEC
Managing firewall table, tuning parameters PITUNING
Managing message logs PIMSGSS
Managing PI Data Archive collectives PIReplication and PIBACKUP

PI point access permissions


At the top level, access to points is controlled by the PIPOINT entry in the Database Security
tool in PI SMT. You can further restrict access permissions for individual points, but you cannot
grant more access than is granted for PIPOINT.
PI point security consists of data security and point security.
Type of security Description
Data security Specifies who has access to a point's data values (snapshot and archive data).
Point security Specifies who has access to the point's configuration (Zero, Span, Descriptor,
and other point attributes).

You can have different access permissions for a point's attributes than for the point's data. For
example, a user might be allowed to edit a point's data, but not to edit that point's attributes.

• Data Security
To view and edit point data, you also need read access to point security. If users do not have
permission to view a point's attributes, they cannot see that point's data, in most cases.
(This is because client applications need access to the point attributes in order to get the
data.)

• Point Security
To view point attributes, you need read access to PIPOINT, and read access to the point
security for the point itself. Similarly, to edit a point's attributes, you need read/write access
to PIPOINT, and read/write access to the configuration for the point itself.
The following table lists required access permissions for basic tasks.

PI Data Archive System Management Guide 137


PI Data Archive security

Task Required access permissions


View point data Read access to PIPOINT, data security for that point, and point
security for that point
Edit point data Read-write access to data security for that point; read access to
point security for that point and PIPOINT
View point attributes Read access to PIPOINT and to point security for that point
Edit point attributes Read-write access to PIPOINT, data security for that point, and point
security for that point
Create a point Read-write access to PIPOINT
Delete a point Read-write access to PIPOINT and to point security for that point
Add a user to data security Read-write access to both data security and point security
Edit a user's data security Read-write access to both data security and point security
settings

Default access for new points and modules


You can set default access permissions for points and modules. When you create a new point or
module without explicitly setting access permissions, the point or module gets the default
access permissions.
• Default access permissions for all new points (both point data and point configuration)
match the access permissions for the point database (PIPOINT). You can set permissions for
PIPOINT using the Database Security plug-in for PI SMT.
• Similarly, default access permissions for root modules match the access permissions for the
module database (PIModules). You can set permissions for PIModules in the Database
Security tool. New modules below the root level inherit from their parent.

PI module access permissions


At the top level, access to modules is controlled by the PIModules entry in the Database
Security tool in PI SMT.
You can further restrict access permissions for individual modules, but you cannot grant more
access than the PIModules table grants. Furthermore, modules have a hierarchical structure
and each module inherits permissions from parent modules. You cannot grant more access to a
module than you have granted to the module's parent. The following table explains the
necessary permissions for basic tasks.
Task Required Access
Create a module Write access to PIModules, write access to
module's parent
Delete a module Write access to PIModules, write access to
module's parent, write access to module
Rename a module Read access to PIModules, write access to module
Edit a module (except link operation) Read access to PIModules, write access to module
Edit a module (link operation) Read access to PIModules, write access to module's
parent, write access to module

138 PI Data Archive System Management Guide


PI Data Archive security

Set access permissions


A variety of client tools called administrative applications enable you to set access permissions.
The most commonly used administrative applications are:

• For top-level access, the PI SMT Database Security tool


• For points, Point Builder in PI SMT or PI Builder
• For modules, Module Database Builder
The change in the access permissions model starting with PI Data Archive version 3.4.380
means that you set permissions differently for newer and older versions of PI Data Archive. To
set permissions for version 3.4.380 and later, use tools that are compatible with the new access
permissions model (see Which administrative tools are compatible with PI Data Archive).
If you use an older version of any tool to set permissions on the latest version of PI Data
Archive, you might encounter incompatibility issues.

Topics in this section


• Set permissions in SMT
• Administrative client applications
• Which administrative tools are compatible with PI Data Archive

Set permissions in SMT


To edit the access permissions for a PI point, select the point in PI SMT Point Builder and click
the Security tab. To edit the access permissions for an item in the Database Security tool,
double-click the item to open the Properties dialog box. In both cases, you see a simple
interface that allows you to configure security. The interface depends on what version of PI
Server you are using.

• For PI Server 3.4.375.99 and earlier versions, the interface shows access permissions like
this:

Choose an owner and group, then specify the owner, group, and world access. See Servers
earlier than 3.4 for more information about this access permission model.
• For PI Data Archive 3.4.380 and later, the interface shows access permissions like this:

PI Data Archive System Management Guide 139


PI Data Archive security

Select a PI identity, user, or group and then specify the read/write access permissions. See
Servers 3.4.380 and later for more information about this access permission model.

Administrative client applications


Administrative applications are applications that allow you to configure access permissions.
Examples are PI SMT, Point Builder, Module Database Builder, and so on. When you upgrade to
PI Server 3.4.380, your existing access permissions are converted to the new model. New
versions of most administrative tools can display access permissions for either the old or the
new model, depending on the version of the connected PI Data Archive.
Older versions of administrative applications cannot interpret new-model access permissions
unless the access permissions are compatible with the old model. The display of incompatible
access permissions depends on the specific client tool. Typically the tool will show:
owner: PIUserIncompatible
group: PIGroupIncompatible

PIUserIncompatible and PIGroupIncompatible are built-in PI identities included in the PI


Server 3.4.380 installation.

Which administrative tools are compatible with PI Data Archive


To work with access permissions for PI Server 3.4.380 or later, run SDK 1.3.6 or later and use
the following administrative tools:

• PI SMT version 3.3.1.3 or later (includes Point Builder, Module Database tool, and Database
Security tool)
• PI Builder
• Module Database Builder version 1.2.1.3 or later
• PI ICU 1.4.7 or later
• PI APS 1.2.5.0 or later

140 PI Data Archive System Management Guide


PI Data Archive security

Tighten security
This section describes the simple steps you can take to improve security on your PI Data
Archive. This is not a comprehensive list.

Topics in this section


• Secure the piadmin account
• Require passwords on all user accounts
• Disable all explicit PI Data Archive logins
• Disable explicit logins for individual user accounts

Secure the piadmin account


Each PI Data Archive server has an administrator account called piadmin. This account has
permission to do anything on the PI System, regardless of security settings. For a secure
environment, do not use the piadmin account.
If you must use the piadmin account, OSIsoft recommends disabling explicit logins for this
account (Disable explicit logins for individual user accounts). If you are not ready to disable
explicit logins for piadmin, at least create a password for the account.

Require passwords on all user accounts


PI Data Archive user passwords provide a minimal level of security for PI Data Archive. If you
are going to use individual PI user accounts to manage PI Data Archive, at least require that the
user accounts be protected by passwords (PI user accounts that do not have passwords cannot
authenticate on PI Data Archive).

Procedure
1. In PI SMT, select a server under Collectives and Servers. You can change settings for only
one PI Data Archive at a time.
2. Open the Security Settings tool (Security > Security Settings.) The Security Settings tool
appears (only for PI Data Archive version 3.4.380 or later).
3. Choose the Blank password not allowed option.
4. Stop and then restart PI Base Subsystem to apply the changes.

Disable all explicit PI Data Archive logins


A good security practice is to disable explicit PI Data Archive logins. On new PI Data Archive
installations, explicit logins are disabled by default. When you upgrade PI Data Archive, you are
prompted to disable explicit logins, but you are not required to do so. After you configure
mappings to replace PI user logins, you should plan to disable explicit logins altogether. Before
doing this, make sure that the explicit logins are no longer needed.

PI Data Archive System Management Guide 141


PI Data Archive security

Procedure
1. In PI SMT, select a server under Collectives and Servers. You can change settings for only
one PI Data Archive at a time.
2. Open the Security Settings tool (Security > Security Settings.) The Security Settings tool
appears (only for PI Data Archive servers running version 3.4.380 or later).
3. Choose the Explicit login not allowed option.
4. To apply the changes, stop and then restart PI Base Subsystem.

Disable explicit logins for individual user accounts


Procedure
1. In PI SMT, open the Identities, Users, & Groups tool (Under System Management Tools,
select Security > Identities, Users, & Groups).
2. Click the PI Users tab.
3. Double-click the username for the PI user.
The Properties dialog box for that PI user opens.
4. On the General tab, select the User cannot be used for an explicit login check box.
5. Click OK.
To re-enable explicit logins for a PI user account, clear the same check box.

142 PI Data Archive System Management Guide


Future data
Definition
Future data is data associated with a future time stamp. PI Data Archive 2015 allows storage
and retrieval of data with time stamps beyond current time, allowing you to store data within a
time range of January, 1970 through January, 2038. With PI Data Archive 2015 you can capture
and analyze data with future time stamps, and use PI visualization tools to graphically create
possible forecasts or predictions for your business. You may store and use this forecasted data
to predict resource requirements or maintenance activities, find differences between predicted
and actual production yields, and so on.

Difference between historical and future data


Prior to version 2015, PI Data Archive only supported data in real time, not future data. This
data is typically time-series data collected in real time, and appended to the end of data
streams at some regular frequency or sampling interval. The data is effectively stored in time-
segmented archive files. With PI Data Archive 2015, this type of time-series data is
differentiated from future data in the way that the PI point is defined, as well as in the way the
PI point data is stored and accessed.
Typically, future data is generated over a specific time range, for example, a day or week ahead
of the current time, and is periodically refreshed when a new set of predictions becomes
available. The refresh interval is typically shorter than the forecast range, so that data from the
prior forecast can be either truncated before new values are appended, or overwritten.
Interfaces can set an appropriate mode (with which data is sent to PI Data Archive) to append
new forecasts or overwrite an existing forecast with a new forecast. Most interfaces can send
the data in a mode to replace the existing forecast values. This allows the data archive to store
the newest value of each refresh of a forecast, thereby keeping a useful record of the most
accurate forecasted values. These data forecasts can be compared against actual measurements
either visually (for example, using graphical PI trends) or analytically (for example, using PI
DataLink spreadsheets). Preserving the history of your forecasts may also be useful for model
optimizations and "what-if" analyses.

Future time stamp format


PI Data Archive stores time stamps in coordinated universal time (UTC) format in order to
conform to a single reference time. All future time stamps reflect the DST settings as defined in
the local time zone for the client computer. For each time zone, current DST settings are
considered valid until the local authorities change them. Measured data that originates in
another time zone is not considered future data.
You can populate future PI points with data that is time-stamped prior to current time: PI Data
Archive allows you to write future PI point values anywhere in the UTC time range
(1970-2038).

Topics in this section


• Products supporting future data
• Future PI points
• Future archives
• Analytics with future data

PI Data Archive System Management Guide 143


Future data

• Use cases and examples


• Weather example: High-level procedure

Products supporting future data


OSIsoft products that support future data
Product Earliest version supporting future data
PI Data Archive 3.4.395
PI AF 2.7
PI AF Client 2015
PI Coresight 2015
PI Vision 2017
PI DataLink 2015
PI ProcessBook 2015

In addition, PI SMT 2015 and PI Collective Manager 2015 have been enhanced for future data
support. PI Audit Viewer also supports the same auditing abilities for future PI points as for
historical PI points.
OSIsoft products that do not support future data
Product Details
PI SDK, PI ACE In its released form, the PI SDK can be used to both read and write values in
the future, but there are limitations with future PI points such as the lack of
Event Pipe support. These limitations restrict the out-of-box support for
future data in PI SDK-based applications like PI ACE. For example, you cannot
use future PI points to naturally trigger PI ACE calculations directly, and the PI
ACE cache may not stay in sync and cannot be trusted to be accurate for
future PI points. PI ACE does offer clock-based calculation triggers, and the PI
ACE cache can be disabled globally, but these limitations may be too severe.
PI Performance Future PI points cannot be used as output, input, or trigger tags for
Equation Scheduler PIPESCHD.
(PIPESCHD)
PI EFGen PI EFGen cannot be used to trigger event frames for future PI points.

Future PI points
PI Data Archive 2015 provides a new point attribute called "future" that you can enable for a
new PI point intended to store future data. The “future” attribute is a part of all point classes,
including “base” and “classic”. PI points that do not have this attribute turned on, referred to as
"historical" PI points, will reject data with time stamps that are greater than 10 minutes
beyond current time. The future attribute of a PI point cannot be modified after the PI point
has been created; therefore, existing historical PI points cannot be converted to future PI
points. Additionally, the future attribute of a PI point is disabled (set to '0') by default because
it is anticipated that most new PI points are created to store real-time or continuous historical
data.

144 PI Data Archive System Management Guide


Future data

Choosing between historical or future PI points is a key decision that depends on whether the
data that must be stored is real-time data, that is, from sensors collecting continuous
measurements, or data that may not be close to current time or may be frequently revised (for
example, forecasts or predictions). Such critical distinction in stored values is unlikely to
change in the life of a PI point.
Caution:
Although future PI points can store data with both future and past time stamps, OSIsoft
strongly recommends against mixing predicted and measured data in the same PI point.
Use future PI points for forecast data and historical PI points for actual or measured data.

Creating future PI points


To create a future PI point, you can use one of these tools:
• System Management Tools (SMT). To create a future PI point, set the Stored Values option in
the Point Builder plug-in on the General tab to "Future Data". For more information, see the
PI Server topic "General attributes" in Live Library (https://livelibrary.osisoft.com).
• PI Builder. This Microsoft Excel add-in allows you to set the future attribute of a PI point to
"1". See the PI Server section "PI Builder" in Live Library (https://livelibrary.osisoft.com).
• PI System Explorer. See the PI Server section "PI System Explorer" in Live Library (https://
livelibrary.osisoft.com).
Note:
By default, future PI points have their step attribute turned on (set to 1). This is because
most future PI Points store discontinuous signals (for example, a series of discrete
predictions) for which linear interpolation cannot be assumed. With the step attribute
turned on, trends show a staircase pattern. Future PI points, by default, also have
compression, excmin, excmax and excdev turned off (set to 0).

Writing data to future PI points


Once you have created future PI points, you can write to them the same way that you write to
historical PI points. You may use any of these methods:
• PI SMT Archive Editor.
Caution:
You cannot use PI SMT Archive Editor to propagate future PI point values to all
members of a PI Data Archive collective. PI SMT is not designed to be used as a
continuous data generator for any type of data. To send data to all collective members,
use a PI Interface, PI Connector, or a PI AF SDK-based application that can leverage PI
Buffering. The PI SMT Archive Editor should only be used for a small number of edits
that are specific to a collective member.
• Standard OSIsoft interfaces such as the PI UFL or PI RDBMS Interfaces.
• Your own application using AF SDK, PI Web API, or PI OLEDB Enterprise.

Visualizing future PI point data


You can use a variety of visualization clients and supporting tools to read future PI point data,
including:

PI Data Archive System Management Guide 145


Future data

• PI Vision, or PI Coresight 2015 to 2016 R2. For more details, see the "PI Vision
documentation" in Live Library (https://livelibrary.osisoft.com) or "PI Coresight
documentation" in Live Library (https://livelibrary.osisoft.com).
• PI DataLink 2015 or later. For more details, see the "PI Datalink documentation" in Live
Library (https://livelibrary.osisoft.com).
• PI ProcessBook 2015 or later. For more details, see the "PI ProcessBook documentation" in
Live Library (https://livelibrary.osisoft.com).
• PI SMT 2015 or later. You must specify the PI point and an appropriate time range if you are
using the Archive Editor. If using Current Values, you may need to manually refresh the
Current Values to see updated values for future PI points.

Restrictions with future PI points


Future PI points have these PI point class and usage restrictions:
• Not supported members of the point classes: Alarm, SQC_Alarm, and Totalizer
• Not supported as output, input, or trigger PI points for the PI Performance Equation
Scheduler (PIPESCHD).
• Not supported in the PI Batch Database (BDB) or the PI Batch Subsystem (BSS).
Future PI points are different from historical PI points, and PI visualization clients are
encouraged to upgrade to the latest version.
Note:
If a future PI point's end-of-stream value is in the past, then a client tool such as PI
Coresight will not show the PI point's extrapolated value to the current time, and instead
show "No data".
The notion of the "current value" of a future PI point is dependent on the particular usage and
requirements of the client application. For historical PI points, the current value of a PI point is
the last chronological value or end-of-stream value, but for future PI points, applications
usually expect the current value as the one closest to the current time. Because the end-of-
stream value of a future PI point may be misleading to a user, PI Server 2015 and later versions
always return the message Future Data Unsupported as the end-of-stream value for a
future PI point.

Future archives
Creating future archives
To manage future data that is not continuous or sequential like real-time historical PI point
data, PI Data Archive uses separate archives called "future archives" that are created
automatically. Future archives have pre-determined time ranges and are created only when
data is received. Every future archive has an initial size of 1 MB, grows dynamically, and has a
time range always bound to one calendar month. For example, if a new PI value comes in on
January 7th at 08:00 AM and an archive file does not already exist for the month of January, PI
Data Archive creates one automatically. Future archives are optimized for non-sequential data
unlike real-time data stored in "historical" archives. Historical and future archives can be

146 PI Data Archive System Management Guide


Future data

managed independently based on your specific needs for data retention, availability,
performance, and reliability.
Data in future archives is never mixed or interchanged with data in historical archives. When
time passes and forecasted data moves into the past, it is still stored in the same future
archives; PI Data Archive does not discard or move the data.
In rare situations, you may want to manually create and register future archives because either
the initial size or the duration are not desirable. The automatic algorithm will fill in any “gaps”
before and after all existing future archives, and re-align new archives to calendar-month
duration. For example, if you manually create a future archive from 11:00 AM on January 7th to
09:00 AM on January 14th, PI Data Archive automatically creates an archive file from 12:00 AM
on January 1st to 11:00 AM on January 7th and a second archive file from 09:00 AM on January
14th to 12:00 AM on February 1st. PI Data Archive only creates these adjacent archives if data
is actually received for both of those time ranges.

Archive administration
You can manage historical and future archives by using the PI SMT Archives plug-in or
command-line utilities.

• PI SMT Archives plug-in


The PI SMT Archives plug-in organizes archives by server and type of archive: whether
historical or future.
As a PI system administrator, you must choose the location for future archives and ensure
that the PI Data Archive server has enough disk space. This option is also available during
the PI Data Archive installation process. Future archives are created in the default location
PI\arc\future and have the default filename "server-name_datetime-stamp". Optionally,
you can also customize the archive file names.
To change the location of your automatically created archives, in PI SMT, go to Operation >
Archives, click to expand the Review and update parameters section, and enter the new
location in Auto create path. Run the command pidiag- updateFolderSecurity to
make sure proper permissions are set on the new path. Changes to archive location take
effect the next time an archive is created. Existing archives are not moved.
Run the command "pidiag -updateFolderSecurity" to make sure proper permissions are set
on the new path.

• Command-line utilities
Most command-line tools take an extra parameter: -hist or -future. This parameter
restricts a command to perform its action against the specified PI point or archive. For
example, consider the piartool command for listing archives:
Use piartool -al to list all archives.
Use piartool -al -hist to list only archives relevant to historical tags.
Use piartool -al -future to list only archives relevant to future tags.

PI Data Archive System Management Guide 147


Future data

Analytics with future data


Use the asset analytics feature in PI AF to fully harness future data by triggering calculations
from future PI points and performing analyses using both historical and future PI points. You
can use future data in analyses in two ways:
• Use future data as input to an analysis. Values from future events are used in calculations
the same as any other values; however, inputs with future data can affect evaluations for an
analysis with event-driven scheduling.
For example, you can compare an actual measured value (like temperature) stored in a
historical PI point to its predicted value stored in a future PI point.
• Use an analysis to produce future data by specifying a future time stamp for the output of an
analysis.
For example, you store the result of calculations using both future and historical PI points in
a new future PI point.
Current versions of PI Notifications cannot directly trigger PI notifications from future PI
points. However, you can generate a PI notification when an anomalous future condition is
detected by using an intermediary historical PI point.

Use cases and examples


Depending on your industry or application, you can use forecast data to:
• Identify both risks and opportunities by recording and visualizing forecast data to compare
against actual production numbers
• Optimize your service schedule to operate at maximum efficiency and safety, while
minimizing failures and down-times
• Use predictive analysis to generate and optimize process models that keep your operations
in full compliance
• Ensure the security and availability of data in your systems by predicting data storage and
retention patterns for your data center
See Weather example: High-level procedure to create a sample of weather-related future data
that you can use to analyze weather trends.

Weather example: High-level procedure


We use weather as an example of a generalized application to show you how to use future PI
points in predictive analysis. Predictive analysis of heavy rain, winds, dust storms, etc., can find
application in various industries: it may result in additional crews sent out for various kinds of
maintenance, ordering enough salt to counter icy conditions on highways, ensuring extra
power in the grid for periods of severe storms, and so on.
Follow these steps to set up a sample weather system and test out the capabilities of future
points; alternatively, you may use these as guidelines to create a specialized schema for your
own application, depending on the specific needs of your industry.

148 PI Data Archive System Management Guide


Future data

Procedure
1. Verify your PI Server installation. See Weather example: Verify PI Server installation for
more information.
2. Create historical PI points for past weather data and future PI points for predicted weather
data. Populate the PI points with weather data collected from a public source. Weather
example: Create and populate PI points with weather data
3. Set up an AF element template and associated attribute templates that get their values from
configured historical and future PI points. Then create PI AF elements for several
geographical locations. See Weather example: Create PI AF elements and attributes
4. Using PI Vision or PI ProcessBook 2015 or later, generate trends over a specific time period
to see historical versus predicted trends for a particular weather attribute. Weather
example: Create trends and analyze data

Weather example: Verify PI Server installation


Before creating a sample system using future data, you must verify that you have installed
correct versions of OSIsoft products.

Procedure
1. Verify that you have installed PI Server 2015 or later. PI Server includes PI Data Archive and
PI AF.
2. Verify that you have installed the latest version of a client tool such as PI Vision or PI
ProcessBook 2015 or later.
3. Start a PI Data Archive and a PI AF server.

Weather example: Create and populate PI points with weather data


You can create both historical PI points such as "Current Temperature" and future PI points
such as "Predicted Temperature" or "Predicted Precipitation". To generate values to populate PI
points, you can use data generated by using standard methods that are used in your
organization and that apply to your application.
For the weather example, you can use any web service to generate historical and predicted
weather data. For example, the service on developer.worldweatheronline.com can generate
predicted weather data in CSV (Comma Separated Values), JSON and other formats. We detail
instructions on using this service, but you may use any other service instead.

Procedure
1. Navigate to World Weather Online Developer Portal (http://
developer.worldweatheronline.com).
2. Select the Free Weather API service.
3. Select "Get local weather". Enter the zip code of the location you wish to monitor, and select
a CSV file as output. You can select other options such as number of forecast days, time
intervals of forecasts and so on.
4. Load the CSV file into Excel.

PI Data Archive System Management Guide 149


Future data

5. Select the columns that are of interest to you, and using PI DataLink, create a table of
predicted PI point attribute values and time stamps. You may also have PI point attributes
for historical data such as "Current Temperature", which you can later compare with
"Predicted Temperature" data.
6. Configure your PI Data Archive with your weather PI points and values.
Note:
To extend this model to many thousands of locations, use PI Builder to configure your
PI points.

Weather example: Create PI AF elements and attributes


Use an element template to create PI AF elements with attributes designating various aspects
of weather.
Note:
For information on creating element templates, elements and attributes in PI AF, see the
PI System Explorer User Guide.

Procedure
1. Using PI System Explorer, create an element template called WeatherByLocation with
weather attributes such as:
◦ Current Temperature
◦ Predicted Temperature
◦ Predicted Precipitation
◦ Predicted WindDirection
◦ Predicted WindSpeed
◦ Sunlight
◦ Predicted Weather
2. Assign appropriate value types to the various element attributes such as "degree
Fahrenheit" for Predicted Temperature or "percent" for Predicted Precipitation.
You can effectively use the "enumerated set" type, for example, to configure an enumerated
set of weather codes for Predicted weather such as:

◦ 113
Sunny

◦ 116
Partly Cloudy

◦ 122
Overcast
Similarly, you can configure an enumerated set of directions on a 16-point compass for the
"Predicted wind direction" attribute.

150 PI Data Archive System Management Guide


Future data

3.
Note:
You must have created PI points corresponding to the weather attributes before
embarking on this step.
Create data references for each attribute. Link historical PI point attributes like "Current
Temperature" to the corresponding historical PI point, and future PI point attributes like
"Predicted Temperature" to the corresponding future PI point.
4. Create a few elements from the WeatherByLocation element template. The elements should
correspond to the geographical locations where you want to monitor predicted weather
conditions.

Weather example: Create trends and analyze data


Use PI visualization tools to plot or trend historical and future PI point data. Then use asset
analytics (included in PI Server) to assist in your analysis of the collected, predicted, or
computed data.

Procedure
1. In PI Vision, create a trend for the Current Temperature and Predicted Temperature
for a single location.
Select your start and end time to be relative to current time. The "now" line remains visible
if you have chosen a relative time range that straddles current time, such as *-2h to *+2h.
Trend cursors set for a future time show values for future PI points, but historical PI points
show No data.
2. You can use values from future PI points as inputs for your analyses.
For example, you can calculate the difference between Predicted Temperature and
Current Temperature and write it to an output attribute called DeltaTemperature, and
trend the DeltaTemperature values to see how closely your prediction matches actual
recorded values.
You may also trigger an event based on DeltaTemperature reaching a particular value.

PI Data Archive System Management Guide 151


Future data

152 PI Data Archive System Management Guide


PI interfaces
PI interfaces are the software applications that take the data from your data source and send
them to PI Data Archive. There are hundreds of different PI interfaces and each interface is fully
documented in its own dedicated manual. However, most interfaces share a common set of
features.
PI interfaces typically run on a dedicated system, called an interface node, which connects both
to the data source and to PI Data Archive. The interface node might be a machine that is a part
of the foreign data system, a stand-alone dedicated interface machine, or even a PI Data Archive
server (PI to PI). Interface nodes can run multiple interfaces and connect to multiple PI Data
Archive servers.
For most interfaces, it is important to configure buffering on the interface node. This prevents
loss of data when PI Data Archive is not available, such as during an upgrade. Some interfaces
(such as the UFL interface and batch interfaces such as the Emerson DeltaV Batch interface) do
not require buffering because the data source itself is buffered. Consult the documentation for
your interface.
Note:
Interface nodes are sometimes referred to as API nodes or data source nodes.
Since data sources run without human intervention, user logins are not applicable. Before PI
Data Archive 2016 R2, trusts were typically used to authenticate PI interfaces, while mappings
were used for single sign-on for Windows users on PI Data Archive servers. With PI API 2016
for Windows Integrated Security, Windows authentication extends to PI interfaces.
OSIsoft does not recommend using PI trusts or explicit logins for authentication. For a more
secure environment, OSIsoft recommends Windows Integrated Security.
Note:
PI API 2016 for Windows Integrated Security extends Windows authentication to API-
based client applications. If you choose to install PI API 2016 for Windows Integrated
Security, you can use only Windows Integrated Security for authentication. Both trusts
and explicit logins will fail. For more information, see "Security configuration" in Live
Library (https://livelibrary.osisoft.com).

PI interface utilities
• UniInt is an OSIsoft framework for interface development that provides interfaces with a
consistent feature set and behavior.

Interface maintenance
After you install and configure a PI interface, you can typically leave it running indefinitely
without any intervention. If you perform software upgrades or security patches, or if the
network infrastructure changes, you might need to perform a few basic tasks such as
authenticating your interface, configuring a trust, registering the ICU and setting up buffering.
Refer to your interface documentation for more information.

PI Data Archive System Management Guide 153


PI interfaces

Note:
Starting with PI Server 2018 SP3, the Random and Ramp Soak interfaces are no longer
installed with PI Server. Optionally, you can install them by using separate install kits, the
PI Interface for Ramp Soak Simulator Data install kit and the PI Interface for Random
Simulator Data kit. For upgrades, older versions of Random and Ramp Soak will remain
and continue to retrieve data.
When the install kits are installed and running, the following default points will be
created:

• BA:ACTIVE.1
• CONC.1
• BA:LEVEL.1BA:PHASE.1
• BA:PHASE.1
• BA:TEMP.1
• CDEP158
• CDM158
• CDT158
• SINUSOID
• SINUSOIDU

Start and stop interfaces


The first time you start a PI interface, start it from the Windows Services control panel. After
that, you can start and stop the interface using PI ICU.

Procedure
1. Click Start > Control Panel > Administrative Tools > Services
2. In the Services window, find the interface that you want to start or stop. For example, PI
Random Simulator (random) Interface X64.
3. Right-click the interface service and choose Start or Stop.

154 PI Data Archive System Management Guide


PI Data Archive monitoring
Topics in this section
• Windows performance counter monitoring
• PI Data Archive daily health check
• Connection history
• Manage fragmentation of PI Data Archive files

Windows performance counter monitoring


To gather statistics about how your PI Data Archive system is running, use Windows
performance counters. In order to do this, the PI PerfMon interface must be installed and
configured. View data from these counters in either of the following ways:
• Run the PI Performance Monitor interface (PIPerfMon) and it will collect data from
Windows performance counters for which you create PI points in PI SMT.
You can create PI points for PI System performance counters as well as for Windows
counters, such as CPU utilization. To observe performance trends, create a PI Vision or PI
ProcessBook display that contains those points.
• Use Windows Performance Monitor.

Topics in this section


• Which performance counters to monitor
• Build performance monitor points
• Use a trend to monitor performance points
• PI System messages

Which performance counters to monitor


OSIsoft recommends that you monitor the following performance counters.
Performance Counter Description
PI Archive Subsystem
Archived Events/sec Rate of successful event addition to the archive.
Archiving Indicates if data is being archived. There are some situations when
archiving is off, such as during an archive shift. But if it stays off, you
need to check why.
Cache Flush Operations/sec Rate at which points are flushed from the archive cache to disk.
Cache Record Count Archive cache records in memory.
Corrupted Archives Count Number of archives that are known to be corrupted.
Events Read/sec Rate of archive events read.
Failed Archive Shift Indicates if the most recent archive shift failed. If it did, you need to
investigate the cause, such as lack of system resources.

PI Data Archive System Management Guide 155


PI Data Archive monitoring

Performance Counter Description


Failed Events/sec Number of events that failed to be added to memory or to an archive
file.
Out of Order Events/sec Number of out-of-order events posted in the archive.
Primary Archive % Used Percent of used records in primary archive file.
Record Load Time Average Useful for troubleshooting potential performance issues.
Time to Archive Shift Number of seconds until the archive is projected to shift. This time is
not calculated if the archive is less than 10% full.
Total Unflushed Events Number of unflushed events.
PI Backup Subsystem
Backups Started Number of backups that have started. Resets to 0 when the PI
Backup subsystem is restarted.
Failed Backups Number of backups that have failed. Resets to 0 when the PI Backup
subsystem is restarted. Does not reflect failures from
pisitebackup.bat and third-party backups.
Last Backup Failed Specifies if the last backup failed (1) or not (0). Does not reflect
failures from pisitebackup.bat and third-party backups.
Verification Failures Total number of verification failures.
PI Base Subsystem
Module Count Number of modules in the PI module database. Resets to 0 when the
PI Backup subsystem is restarted.
Point Count Total number of defined points. This number includes the connector
point count.
PI Network Manager
Total_Receive Errors Number of times an error occurs while the PI Network Manager is
receiving a message.
Total_Send Errors Number of times an error occurs while the PI Network Manager is
sending a message.
PI Server Statistics
Is Available Indicates if the server is available.
Is In Sync Indicates if the server is synchronized with other members of the
collective
PI Session Statistics
Bytes Received/Sec Number of bytes received by the PI Data Archive session.
Bytes Sent/Sec Number of bytes sent by the PI Data Archive session.
Messages Received/Sec Number of messages received by the PI Data Archive session.
Messages Sent/Sec Number of messages sent by the PI Data Archive session.
Receive Errors Number of times an error occurs while the PI Data Archive session
receives a message.
Send Errors Number of times an error occurs while the PI Data Archive session
sends a message.
PI Snapshot Subsystem
Event Queue Error Count Number of times that an error reading or writing an event queue has
occurred.

156 PI Data Archive System Management Guide


PI Data Archive monitoring

Performance Counter Description


Event Queue Reset State Indicates if the event queue is currently resetting as a result of an
error (1), or not (0).
Events in Overflow Queues Number of events in the overflow queue files. This value should be
zero when PI Data Archive is correctly processing incoming data. If
this value starts growing, it can indicate problems with corrupt
archives or event queues, or another issue that is causing the PI
Archive Subsystem problems with processing new data.
Events in Primary Queue Number of events in the primary queue file.
GetSnapshots/sec Rate of events read from the snapshot.
Number of Overflow Queues Number of overflow queue files (0 if only the primary queue is
active).
OutOfOrderSnapshots/sec Out-of-order events sent to the snapshot.
Reset Folder Count Number of event-queue reset folders currently in storage.
Queued Events/sec Events sent to event queue.
Snapshots/sec Events sent to the snapshot.
Cache (Windows counter)
Copy Read Hits % Success rate of finding things in the file system cache and therefore
the efficiency of the cache.
Logical Disk (Windows counter)
Free MegaBytes Amount of unallocated space on the PI Data Archive computer disk
drive. If this falls below 500 MB, free up space by adjusting the size
of your event queue or archive.
Memory (Windows counter)
Available MBytes Amount of immediately available physical memory. If this value stays
at zero for more than 30 minutes, analyze and adjust loads.
Private Bytes Look at CPU usage of each of the core subsystems.
Process (Windows counter)
Elapsed Time (process) Number of seconds that a process has been running. If these go bad
or stale, you might need to restart the following processes:
• PI Archive Subsystem (piarchss)
• PI Base Subsystem (pibasess)
• PI Message Subsystem (pimsgss)
• PI Network Manager (pinetmgr)
• PI Snapshot Subsystem (pisnapss)
Processor (Windows counter)
Total_%Processor Time Amount of processor utilization. This is calculated by finding the
percentage of time the processor is busy executing the idle thread
and then subtracting that from 100 percent.
System (Windows counter)
System Up Time Number of seconds that the computer has been running since it was
last started. If this value goes bad or stale, there might be an
operating system issue.

This table lists only a subset of the PI performance counters. For a comprehensive list, see the
PI Server topic "PI Performance counters" in Live Library (https://livelibrary.osisoft.com).

PI Data Archive System Management Guide 157


PI Data Archive monitoring

Build performance monitor points


Use PI SMT to create PI points to track performance counter data that the PIPerfmon interface
collects.

Procedure
1. To start PI SMT, select Start > All Programs > PI System > PI System Management Tools.
2. Select the PI Data Archive server on which you want to create the performance points.
3. Expand IT Points and select Performance Counters.
4. On the Tag Settings tab, select an existing PI Performance Monitor interface.
If no interface appears in the list, make sure PIPerfmon is installed and running on the PI
Data Archive server. You configure PIPerfmon by using PI Interface Configuration Utility
(ICU). For more information, see "Installing and configuring the PI PerfMon interface" in
Live Library (https://livelibrary.osisoft.com).
5. Click the Build Tags tab and select the performance monitor points you want to create from
the list of available counters. See Which performance counters to monitor.
6. Click Create Tags to create the performance monitor points.

After you finish


To see the current values of performance monitor points, in PI SMT select Data > Current
Values and use the tag search to find your points.
To monitor data tracked by these points, build trends in PI ProcessBook or PI Vision.

Use a trend to monitor performance points


You can use PI Vision or PI ProcessBook to build a display that monitors the data from your PI
Performance Monitor points so that you can check PI Data Archive at a glance. A display that
uses a multi-state object for each performance counter and shows a particular color for data
that indicates a problem can help you identify issues at a glance. For more information about
building displays, see the PI Vision topic, "Visualizing process data with symbols" in Live
Library (https://livelibrary.osisoft.com).
The following illustration shows an example of using a PI ProcessBook display to track
performance trends.

158 PI Data Archive System Management Guide


PI Data Archive monitoring

You can also create notifications in PI Asset Framework to receive emails when any of the
performance counters indicate a problem. In order to do so, you need to install PI Asset
Framework and may have to first configure analyses and event frames. For more information,
see PI Server topic "Configuration of notification rules for analyses or event frames" in Live
Library (https://livelibrary.osisoft.com).

PI System messages
All PI Data Archive processes send messages to the PI Message Subsystem, which writes
messages to the PI message log. Various tools and utilities can query the message log. The PI
message definition file contains message IDs and definitions.

Topics in this section


• View PI Data Archive messages with PI SMT
• View messages in the Windows event log
• Message structure
• Severity levels
• PI message definition file
• Interpret error codes
• Subsystem health checks (RPC resolver error messages)
• Log file naming convention

PI Data Archive System Management Guide 159


PI Data Archive monitoring

View PI Data Archive messages with PI SMT


Use PI System Management tools (PI SMT) to search for messages on all selected PI Data
Archive servers and collectives. See the PI SMT Help for more information about using this tool.

Procedure
1. Run PI SMT.
2. Select Operation > Message Logs.

View messages in the Windows event log


When PI Message Subsystem is not available, PI Data Archive components write messages to
the Windows event log. You can view these messages with Windows Event Viewer if you are
running PI Data Archive as a service, or with the command windows if running PI Data Archive
interactively. When PI Message Subsystem starts, it merges messages from the Windows event
log into the message log.
Note:
During startup, some components might write messages to the Windows event log before
PI Message Subsystem starts.

Message structure
Messages contain the following information:

• Severity
One of the following severity levels (pigetmsg shows the severity level in a single-letter
code):
◦ Critical (C)
◦ Error (E)
◦ Warning (W)
◦ Information (I)
◦ Debug (D)

• Time stamp
The time when the component wrote the message.

• Source
The component that wrote the message.

• Message ID
The unique identifier of a particular message type.

• Text
The message text, which describes the event.
For example:

160 PI Data Archive System Management Guide


PI Data Archive monitoring

C 23-Jul-08 09:27:46.243 piarchss:piarcmgr (2050)


>> Primary archive file failed to load or has invalid dates. Archiving will be
turned off.

Severity levels
Severity level Description
Critical Loss of system functionality. Requires immediate attention.
Error Action failed.
Warning An anomaly occurred that does not impact the user.
Information Information about the action, such as a successful or unsuccessful login.
Debug Debug/tracing message.

In messages, the leading character indicates the severity level. For example:
• Critical
C 23-Jul-08 09:27:46.243 piarchss:piarcmgr (2050)
>> Primary archive file failed to load or has invalid dates. Archiving will
be turned off.
• Error
E 23-Jul-08 09:27:46.243 piarchss:piarcmgr (2049)
>> Failed to load archive file F:\PI archives\8-Sep-04_14-Sep-04: [3] The
system cannot find the path specified.
• Warning
W 23-Jul-08 09:41:32.733 piarchss:pievqreader (6012)
>> Invalid queue creation path "E:\PI\dat\", using default location
• Information
I 29-Jul-08 18:31:53.211 pinetmgr (7039)
>> Connection accepted: Process name: pigetmsg(6260) ID: 3
• Debug
D 29-Jul-08 15:22:59.421 pibackup (5136)
>> PIvsswriter::OnFreeze. succeeded

PI message definition file


The message definition file stores information about the messages. This database associates a
message ID with each message, along with the message text, parameters, severity, and other
information. The message definition file is called pimdf.dat and it is stored in the PI\dat
directory.
Every product installation may update the definition with new messages. If the message
definition file is not present, or is an old version, then some messages may not be able to be
rendered into readable text. In this case the message will read something like:
E 29-Jul-08 17:44:17 pibasess (8020)
>> Unknown Message # 8020

To see what version of the message definition file is installed, type:


pidiag -mdfv

PI Data Archive System Management Guide 161


PI Data Archive monitoring

Interpret error codes


Use the pidiag utility to interpret any error codes included in the message logs.
To display the error message, enter:
pidiag -e errorcode

where errorcode is the error number displayed in the message log. Error code values may be
positive or negative.
For example, if the error code is -11137, enter:
pidiag -e -11137

[-11137] Primary archive is Read-only. Archiving and archive shifts disabled.

You can also use the pidiag utility to translate operating system error codes, which are always
positive numbers.

Subsystem health checks (RPC resolver error messages)


Every few minutes, pinetmgr sends a health check message to each of the PI Data Archive
subsystems. If pinetmgr does not receive a response within a given amount of time, it
generates the following message and the subsystem (RPC resolver) is marked offline:
>> Deleting connection: pisnapss, Subsystem Healthcheck failed.

If an RPC is made to a subsystem that is marked offline, you will see this message:
[–10733] PINET: RPC Resolver is Off–Line

The output will include details if only the first part of a message was retrieved. In this example,
the message contains the message length. However, a timeout occurred when pinetmgr
attempted to retrieve the rest of the message:
>> Deleting connection: pisnapss, Connection lost(1),
[-10731] PINET: incomplete message

Log file naming convention


During normal operation, PI Message Subsystem maintains central log files for messages from
all PI Data Archive subsystems. PI Data Archive creates a new log file every day, on universal
time coordinate (UTC) time, puts the log files in the PI\log directory and names each log
according to the date. The file names use the format pimsg_YYYMMDD.dat, where:
• YYY is years since 1900. For example, if the year is 2016, YYY is 116.
• MM is the month. For example, if the month is January, MM is 01.
• DD is the day. For example, if it is the fifth of the month, DD is 05.
For example, the log file for January 5, 2016 is named pimsg_1160105.dat.
Use the PI SMT Message Logs tool or the pigetmsg utility to view message log files and search
for messages. PI Data Archive must be running to view messages.
By default, PI Data Archive creates a new log file every day, stores each log file for 35 days, and
then automatically purges log files. To keep log files beyond 35 days, adjust the tuning
parameter MessageLog_DayLimit (up to 10,000 days).

162 PI Data Archive System Management Guide


PI Data Archive monitoring

PI Data Archive daily health check


OSIsoft recommends that you regularly check key elements of your PI Data Archive system.
This process has traditionally been called the daily health check even though most of the checks
do not need to be performed daily. These checks allow you to identify and resolve potential
problems before they become serious. You can also determine how your PI Data Archive
system operates under normal conditions and establish a baseline to use when you set up
automatic monitoring.
Daily
Component Task Tools For more information
Archives Verify that you do not have any corrupt PI SMT: Operation > See Archives
archives, and especially that: Archives
• The primary archive is not corrupt piartool -al
• If you are backfilling, the archive you are
backfilling to is not corrupt
The PI SMT Archives tool flags corrupt
archives and allows you to reprocess them
while they are online.

Backups Verify that scheduled backups have been PI SMT: Operation > See PI Data Archive
running and that you have sufficient disk Backups backups
space for future backups.
piartool -al

Weekly or more often


Component Task Tools
PI System message logs Review the system message logs at PI SMT: Operation > Message Logs
least once a week for critical errors
pigetmsg
and unusual events.
Interface logs Check interface logs for critical errors PI SMT: Operation > Message Logs
and unusual events.
Snapshot data flow Determine if snapshot data flow is PI SMT: Operation > Snapshot and
normal. Archive Statistics
piartool -ss

IO rate counters I/O rate points monitor the flow of PI DataLink or PI ProcessBook
data from an interface. Every 10
minutes, each IO-rate point registers
the 10-minute average data transfer
rate to PI Server in events/second. If
the value stops updating in PI, the
interface may have stopped collecting
data.

Monthly
Component Task Tools
License limits and usage Perform monthly usage statistics and PI SMT: Operation > Licensing
point count checks for your PI System
piartool -lic
to anticipate license increase needs.

PI Data Archive System Management Guide 163


PI Data Archive monitoring

Upon initial setup


Component Task Tools
Performance counters (Windows) Use key Windows performance Windows Performance Monitor, PI
counters to review statistics about all Performance Monitor (PerfMon)
subsystems. Interface

As Needed
Component Task Tools
PI point data Make sure PI point data references PI SMT: Data > Current Values
are updating.
pisnap.bat
pisnap.sh

Client connections If you are having client data flow PI SMT: Operation > Update Manager
issues, verify client connections to PI
pilistupd
Data Archive.

Connection history
PI Data Archive stores the history of connections from clients, interfaces, and other
applications. This history is stored on your local computer, and data is kept for 1 year, by
default. You can access this data to count client connections and associated information for
specified time periods, and optionally write the information to a file.
Use the pidiag command to retrieve connection history information, including
• IP address
• Name of the executable of the connecting application (product)
• Time the connection started
• Time the connection ended (if already disconnected)
• License information
To see information about pidiag command options for customizing your query, see the PI
Data Archive reference topic "Connection history information" in Live Library (https://
livelibrary.osisoft.com). For example, the following command returns information about
connections during a specified time range. It shows unique product connections between
March 30th, 2017, at 10:50 AM and March 31st, 2017, at 10:50 AM
pidiag -connectionhistory -u -s "30-Mar-17 10:50:00" -e "31-Mar-17 10:50:00"
Start time: 30-Mar-17 10:50:00
End time: 31-Mar-17 10:50:00
Product Number of node IPs Node IP address[es]
PI-IN-OS-RMP 1 127.0.0.1
pibasess 1 127.0.0.1
pimsgss 1 127.0.0.1
piarchss 1 127.0.0.1
PIPC Log Server 1 127.0.0.1
Number of unique products: 5

164 PI Data Archive System Management Guide


PI Data Archive monitoring

Manage fragmentation of PI Data Archive files


Fragmentation can lead to degradation of read and write performance. For optimal system
performance, OSIsoft recommends regular detection and reduction of fragmentation. Future
data archives and historic archives with auto-dynamic archiving are likely to incur
fragmentation. Fragmentation is rarely an issue for fixed-size archives.
Note:
Archive file types are shown in the PI SMT Archives tool, in the Type column. If the Type
column is not visible, right-click the column headers and choose Type.
To control fragmentation, perform online reprocessing of only those archives that are highly
fragmented. Online reprocessing allocates new, contiguous sectors for the archive files you
reprocess. This method enables you to keep data online, and therefore available, as much as
possible.

Procedure
1. Defragment the drive; run both the analysis and the defragmentation processes.
Note:
The archive files that are registered with the PI Data Archive server are analyzed but
not defragmented, because they are locked.
2. Use the fragmentation report to identify archive files that are highly fragmented.
3. Reprocess those archive files, online.
For more information, see Archive reprocessing.

After you finish


To perform a complete defragmentation of a full PI Data Archive system, the PI Data Archive
server must be stopped. While it is stopped, you can defragment all files. It might be convenient
to do this when you have scheduled system downtime for maintenance.
For more complicated scenarios, contact OSIsoft Tech Support. See the OSIsoft Customer Portal
Contact Us page (https://customers.osisoft.com/s/contactus).

PI Data Archive System Management Guide 165


PI Data Archive monitoring

166 PI Data Archive System Management Guide


PI Data Archive tuning parameters
Most PI Data Archive servers require no tuning and work well with the default settings, but you
can adjust PI Data Archive tuning parameters if needed. Tuning parameter values are
preserved during upgrades.
Use the Tuning Parameters tool in PI SMT to view and edit tuning parameter settings.

Topics in this section


• Configurable tuning parameters
• Edit tuning parameters in SMT
• Add a tuning parameter to the list

Configurable tuning parameters


Use the Tuning Parameters tool to view and edit settings for all connected PI Data Archive
servers. To open the Tuning Parameters tool, select Operation > Tuning Parameters.
By default, each tab in the Tuning Parameters tool provides a list of the most commonly used
server settings for each category. When you select a tuning parameter, a description of its
function is shown in the lower pane.
Note:
When you select a tuning parameter, a description of what it controls is shown in the field
below.
Settings are displayed on these tabs:
• General: Command line tool and server application settings.
• Archive: PI Archive Subsystem settings.
• Backup: PI Backup Subsystem settings.
• Base: PI Base Subsystem settings, including module database parameters.
• Net Manager: PI Network Manager settings.
• Snapshot: PI Snapshot Subsystem settings, including event queue settings for buffered
values that are not yet archived.
• Update Manager: Update Manager settings that affect programs that sign up for point or
data updates, including ProcessBook and most interfaces.
• Security: Security settings that affect authentication, PI identities, and mappings.
If the tuning parameter that you want is not displayed in these lists, then you can add it.

PI Data Archive System Management Guide 167


PI Data Archive tuning parameters

Edit tuning parameters in SMT


Procedure
1. In PI System Management Tools, select Operation > Tuning Parameters.
2. In the Collectives and Servers pane, select the PI Data Archive server on which you want to
edit the parameter.
3. Clear the check boxes for all other PI Data Archive servers.
4. Click the tab for the subsystem where you want to edit a tuning parameter value.
5. If necessary, Add a tuning parameter to the list.
6. Right-click an existing parameter in the list and select Edit.
7. Enter a value and click OK.

After you finish


Some changes to tuning parameters do not take effect until you restart PI Data Archive or the
associated subsystem. Some applications that were already connected do not reflect tuning
parameter edits until you reconnect.

Add a tuning parameter to the list


By default, only the most commonly used tuning parameters are displayed in the PI SMT
Tuning Parameters list. If you need to modify a tuning parameter that is not on the list, contact
OSIsoft Technical Support.

Procedure
1. In the Collectives and Servers pane, select the PI Data Archive server on which you want to
add the parameter.
2. Clear the check boxes for all other PI Data Archive servers.
3. On the toolbar, click the New Parameter icon ( ).

4. In Parameter name, select the parameter that you want to add to the list. If you know the
name, you can enter it exactly.
5. Optional: Enter a value for the tuning parameter.
6. Click OK. The parameter is added to the list.
7. Stop and restart the PI Data Archive server or the subsystem associated with the updated
parameter.

168 PI Data Archive System Management Guide


Data retrieval with foreign data sources (COM
connectors)
Note:
COM connectors will no longer function starting with PI Data Archive 2018 SP3 Patch 1.
To migrate your COM connectors prior to upgrading from an earlier version of PI Data
Archive, contact OSIsoft Technical Support for assistance (see the OSIsoft Customer
Portal Contact Us page (https://customers.osisoft.com/s/contactus)).

PI Data Archive System Management Guide 169


Data retrieval with foreign data sources (COM connectors)

170 PI Data Archive System Management Guide


Troubleshooting
Data passes through many steps on the way into and out of the archive. When troubleshooting,
it is important to identify both data path malfunctions and data paths that function correctly.

Topics in this section


• Troubleshooting checklist
• General troubleshooting tasks
• Specific issues

Troubleshooting checklist
To troubleshoot issues, complete the steps in this checklist. If you have not resolved the
problem when you finish these steps, contact OSIsoft Customer Portal Contact Us page
(https://customers.osisoft.com/s/contactus).

Procedure
1. Look for error messages. If you know the specific error message, search the Technical
Support site for that error. If you do not yet have a specific error message, look at the
message logs on the server and client node. For server messages, use the Message Log tool
in PI SMT. Filter messages for a severity of Error and greater. See Severity levels.
You cannot look at a client node message log remotely. Run PI SMT directly on the client
node or use pigetmsg. For interface issues, examine the pipc\dat\pipc.log files directly
on the interface node. If this is a setup problem, look at the setup logs in the 32-bit pipc
\dat directory.
To get a text description for an error number, use:
pidiag -e errornumber

For more information on error messages, see PI System messages. For information about
pigetmsg, see the PI Data Archive Reference Guide.
2. Determine which computers exhibit the problem:
◦ Client computers
◦ Server computers
◦ Interface computers
To isolate the computers, run the questionable system against a system that is functioning
correctly and review the results.
◦ A network problem is likely if all computers exhibit the malfunction.
◦ A server problem is indicated if the malfunction occurs on all clients.
◦ A hardware or networking problem is likely if the applications that malfunction do not
use the PI System. Run telnet to further isolate the problem. If telnet works, then the
network is not likely the problem, although it might be a network issue such as DNS or
firewall blocking.
3. If this is a client problem, do the following:

PI Data Archive System Management Guide 171


Troubleshooting

◦ Check security to ensure the user has the correct privileges.


◦ Check the Update Manager to ensure the client is signed up for and receiving updates.
Use the pilistupd command utility to check for updates.
◦ If a trend in PI ProcessBook flatlines, see PI ProcessBook trend flatlines.
4. If this is a server problem, do the following:
◦ Verify that all PI Data Archive processes are running. To see the status of all processes
running as services, use the PI Services tool in PI SMT .
Note:
PI Systems could take several minutes to start; loading of the Point Database,
snapshot, and archives takes most of the time. Utilities such as piartool and
piconfig are not fully operational until startup has completed.
◦ Even if a process is listed as running, it might be in a state where it is not communicating
with PI Network Manager (PINet Manager). Check the following:
▪ In the SMT PI Services tool, select the service and check its details under Thread
Details for Selection. Look at the Duration column. If the service is Running and
Duration is unexpectedly large, the thread might be hung.
▪ To get more information, use the SMT Network Manager Statistics tool. See
Connection checking.
▪ To verify that individual PI Data Archive processes are communicating, use the utilities
listed in Verification that PI Data Archive processes are running. For information about
connections, look at the Network Manager statistics.
▪ To check if a subsystem is responsive, use
piartool -block subsystem -verbose
◦ Run the PI Data Archive server with pistart.bat, rather than as services. The
interactive command windows might display additional status messages.
5. If a subsystem crashes, there may be additional information that can be useful to our
developers. Configure an application debugger to generate a crash dump file.
6. Use netstat -a to verify whether other processes are communicating on port 5450; if so,
PINet Manager communicated successfully at one time.
7. If you have an archive or snapshot problem, use the piartool -as and piartool -ss
utilities to gather more information about the data flow. See Verification that PI Data
Archive processes are running.
◦ Retrieve a snapshot in all of the following ways; the combined results of these tests helps
determine the source of the problem:
▪ apisnap from a remote node (uses API + network)
▪ apisnap from the home node (uses API)
▪ piconfig < pisnap.dif from the home node (uses internal communication)
◦ Dump a snapshot with piartool -sd. Run this a few times to determine if the snapshot
is changing for the tags you are interested in.
◦ To determine if the archive is corrupt, use piartool -aw.
◦ If this is a PI Update Manager problem, use the pilistupd utility to see which processes
are signed up for events. Use pilistupd –cs to see the list of consumers.

172 PI Data Archive System Management Guide


Troubleshooting

8. Each PI System is distributed with a standard set of points including sinusoid, cdep158, and
cdm158.
Note:
Starting with PI Server 2018 SP3, the Random and Ramp Soak interfaces are no longer
installed with PI Server. Optionally, you can install them by using separate install kits,
the PI Interface for Ramp Soak Simulator Data install kit and the PI Interface for
Random Simulator Data kit. For upgrades, older versions of Random and Ramp Soak
will remain and continue to retrieve data.
When the install kits are installed and running, the following default points will be
created:

◦ BA:ACTIVE.1
◦ CONC.1
◦ BA:LEVEL.1BA:PHASE.1
◦ BA:PHASE.1
◦ BA:TEMP.1
◦ CDEP158
◦ CDM158
◦ CDT158
◦ SINUSOID
◦ SINUSOIDU
9. To troubleshoot backups, see PI Data Archive backups.
10. To troubleshoot PI collectives, use Collective Manager to check the status of all members.
Then, use piconfig < pisysdump.dif:
◦ isavailable should be 1 for all members
◦ lastsynctime indicates the last successful communication
◦ role should be 1 for a primary and 2 for a secondary
11. If the problem is with interfaces, try the following:
◦ Run an interface with only one point.
◦ Run the interface interactively.
◦ Run the interface without buffering. When running interactively you will most likely be
using a different account, so security can affect your results.
◦ Determine if the problem is with all points on all interfaces or just a few points on some
interfaces.
◦ Verify that authentication is configured for the node or interface.
◦ Check the PI Firewall database.
◦ Check the individual interface log files, if any; also check the PI Message Log on the
interface node. Use the pigetmsg utility, located in the pipc\adm folder, to check
messages in this file.
◦ If an API interface is not able to connect, try to connect with apisnap.

PI Data Archive System Management Guide 173


Troubleshooting

◦ Make sure the SDK can connect using the AboutPI-SDK utility.
◦ Run as the System Administrator. If the issue goes away, then you have a permission
issue.
◦ If this is the OPC interface, check DCOM settings. The settings are documented in the OPC
Interface Manual.

General troubleshooting tasks


Topics in this section
• Verification that PI Data Archive processes are running
• Connection checking

Verification that PI Data Archive processes are running


When PI Data Archive is running, all its processes should be running. When PI Data Archive is
stopped, all PI Data Archive processes should be stopped. The exception is pishutev, which
only runs briefly at startup.
To view the status of PI services, use the PI SMT PI Services tool: in PI SMT, select Operation >
PI Services. Even when the tool lists a process as running, the process might not be
communicating with PI Network Manager. To verify that each process communicates properly,
use piartool :
piartool -thread subsystem -info

To list all processes that run as services, enter at the command prompt:
net start

If you are running a PI Data Archive process or interface interactively, that process has a
separate command window labeled with the process name.

Topics in this section


• PI Archive Subsystem
• PI Base Subsystem
• PI License Manager
• PI Snapshot Subsystem
• PI SMT Update Manager tool
• Independent operation of PI Data Archive processes

PI Archive Subsystem
Run the piartool –al (archive listing), piartool –as (archive statistics), and pisnap
commands to test PI Archive Subsystem. If PI Archive Subsystem (piarchss) is not working
correctly, you will see:
C:\PI\adm>piartool -al
Getarchivefilelist Failed: [-10733] PINET: RPC Resolver is Off-Line.
C:\PI\adm>piartool -as
Getarcmemtablestatistics Failed: [-10733] PINET: RPC Resolver is Off-Line.

174 PI Data Archive System Management Guide


Troubleshooting

C:\PI\adm>pisnap
C:\PI\adm>apisnap localhost:5450

PI-API version 1.6.1.5


Attempting connection to localhost:5450

Enter tagname: sinusoid

Error: piar_getarcvaluex -10733


Error: piar_getarcvaluesx 100

Tag = SINUSOID Point Number = 1 Type = Real-32


12 Hour Sine Wave

Snapshot value
Value = ERROR ERROR
Status = ERROR

Latest archive value


Value = ERROR ERROR
Status = ERROR

Archive events are queued when PI Archive Subsystem is not operating correctly. Use the
piartool -qs command to view the event queue count.

PI Base Subsystem
Run the pisnap and piconfig utilities to test PI Base Subsystem. If PI Base Subsystem is not
working correctly, you will see:
C:\PI\adm>apisnap localhost:5450

PI-API version 1.6.1.5


Attempting connection to localhost:5450
Error -994, connecting to localhost:5450
C:\PI\adm> piconfig
* (Ls - ) PIconfig> @tabl pipoint
*PIconfig Err> Table initialization error (PIPOINT
*@tabl pipoint
*[-10733] PINET: RPC Resolver is Off-Line.

PI License Manager
PI License Manager, pilicmgr, provides license services for PI programs including
subsystems, client applications, and interfaces. For example, PI Archive Subsystem registers
with PI License Manager to obtain a valid license. If it fails to get its license, it may not operate
properly.
Run the piartool -lic usage command to test PI License Manager. If pilicmgr is not
working correctly, you will see:
C:\PI\adm>piartool -lic usage
Continue after failure to register with License Manager. [-10733] PINET: RPC
Resolver is Off-Line.

PI Snapshot Subsystem
Run the piartool -ss and pisnap commands to test PI Snapshot Subsystem. If PI Snapshot
Subsystem is not working correctly, you will see:

PI Data Archive System Management Guide 175


Troubleshooting

C:\PI\adm>piartool -ss
Getsnaptablestatistics Failed: [-10733] PINET: RPC Resolver is Off-Line.
C:\PI\adm>pisnap

C:\PI\adm>apisnap localhost:5450

PI-API version 1.6.1.5


Attempting connection to localhost:5450

Enter tagname: sinusoid

Error: pisn_getsnapshotsx -10733


Error: piar_getarcvaluex -10733
Error: piar_getarcvaluesx 100

Tag = SINUSOID Point Number = 1 Type = Real-32


12 Hour Sine Wave

Snapshot value
Value = ERROR ERROR
Status = ERROR

Latest archive value


Value = ERROR ERROR
Status = ERROR

PI SMT Update Manager tool


If a client is not getting updates, use the PI SMT Update Manager tool to check the status of
producers and consumers of updates. For details, see the PI SMT topic "Update Manager" in
Live Library (https://livelibrary.osisoft.com).

Independent operation of PI Data Archive processes


Under normal operation, all PI Data Archive processes start up together using the pisrvstart
script and stop together using the pisrvstop script. When troubleshooting, you might want to
run a subset of PI Data Archive processes. On Windows, pisrvstart.bat starts each
subsystem interactively in its own command window.
There are inter-process dependencies with the PI System. For example, all PI Data Archive
subsystems rely on PINet Manager. Most subsystems require PI License Manager, which
provides license services, and PI Update Manager, which provides key services, to be running.
Also, PI Archive Subsystem requires PI Snapshot Subsystem for normal startup. Generally
when troubleshooting, start the following subsystems in the order listed:

1. pinetmgr
2. pimsgss
3. pilicmgr
4. piupdmgr
5. pibasess
6. pisnapss
7. piarchss

176 PI Data Archive System Management Guide


Troubleshooting

Connection checking
For information about connections, look at the Network Manager statistics. You can see these
in the PI SMT Network Manager Statistics tool (select Operation > Network Manager
Statistics). The pinetmgr process manages the remote procedure calls (RPCs) that PI Data
Archive subsystems and processes use to communicate with each other.
For example, if PI Snapshot Subsystem (pisnapss) sends an event to PI Archive Subsystem
(piarchss) for storage, the communication flows from pisnapss to pinetmgr to piarchss.
If PI Archive Subsystem writes a message to the System Message Log, the communication flows
from piarchss to pinetmgr to pimsgss.
The Network Manager Statistics tool shows a lot of information. Check for the following:

• In the BytesSent and BytesRecv columns, identify applications that are requesting or
sending unusual amounts of data. If the value for an application or interface is large
compared to other applications or interfaces of that type, then that might point to the
problem connection. (Values in the BytesSent and BytesRecv columns from PINetMgr are
always the highest.)
• What client processes are connected from which nodes.
• How long clients have been connected.
• In the RegAppType column, determine what type of application is connecting:
◦ OSISDKApp indicates an SDK application.
◦ OSIinterface indicates an interface.
• In the ProtocolVersion column, determine whether the connection is from an SDK or API
application. A version number of 1.x indicates an API application. A version number of 3.x
indicates an SDK application.

Specific issues
Topics in this section
• PI ProcessBook trend flatlines
• Issues with COM connectors
• Pending update limit

PI ProcessBook trend flatlines


If a PI ProcessBook trend flatlines, you may have an issue with PI ProcessBook, PI Data Archive,
network performance/connectivity/configuration, or the data source. Here are some possible
diagnostic steps to take:

PI Data Archive System Management Guide 177


Troubleshooting

Procedure
1. Determine if only one or more specific points are affected. Check another trend in PI
ProcessBook to see if the issue is limited to only some points. If the issue involves multiple
points, go to step 2. If the issue involves only one point, go to step 4.
2. Try retrieving the data from the archive by closing and reopening the trend window. If the
trends appear normal, the issue may be in the update sign-up. Go to step 3. If the trends still
show no data, go to step 4.
3. If no tags are producing trends, run the PI SMT tool Operation > Update Manager and check
if PI ProcessBook is not being signed up for updates.
4. To determine whether the issue is with PI Data Archive or with the client application, view
the pending numbers in the results. Pending numbers represent the number of events
queued and not yet retrieved by the client such as PI ProcessBook. If data is not arriving
from the data source, the pending number remains at 0. If the client PI ProcessBook is not
retrieving the updates, the pending number continually grows and does not shrink.
5. If the pending updates are growing, restart the PI System. If this does not fix the issue,
contact OSIsoft Customer Portal Contact Us page (https://customers.osisoft.com/s/
contactus) for additional assistance. If the pending updates remain zero, go to step 4.
6. If all the points are signed up for updates and refreshing the data from the archive still
yields a flat-line trend, the issue could be in the archive, in the data source, or in
communications to the data source.
7. To determine if the server is working, create a trend for a point with data generated on the
server, such as sinusoid, which is generated by the Random interface on the server.
◦ If the trend for sinusoid appears correctly, the archive is working and communication
between the server and client is working. Go to step 6.
◦ If the trend for sinusoid does not appear correctly, go to step 5.
8. Use piartool -as or piartool -al command to verify that the archive is functioning
properly.
9. Using piconfig utility, PI DataLink, or the PI SMT Archive Editor tool, try inserting data
into a test point to create a trend. If this is successful, go to step 6. If not, contact OSIsoft
Customer Portal Contact Us page (https://customers.osisoft.com/s/contactus) for
additional assistance.
10. If all of these tests are successful, the data source for the flat-lined points may not be
working. Examine the source point attribute of the point to find out which interface is
feeding data for the point in question.
11. Check the OSIsoft Customer Portal Contact Us page (https://customers.osisoft.com/s/
contactus) website to verify that the interface program is running and connected to the
server.
12. Verify that the interface program is communicating with the external data source (DCS
system, RDB system, and so on). See the documentation for the specific interface for details.
13. If the data source is running successfully, go to step 14.
14. Examine the interface log files and the PI Data Archive message log files. Verify that both the
data source interface and PI ProcessBook have the correct access to the system.
15. Check the security settings to ensure that the interface has write access to all of the points
and PI ProcessBook has read access to all of the points.

178 PI Data Archive System Management Guide


Troubleshooting

After you finish


If none of these steps resolve the issue, contact OSIsoft Customer Portal Contact Us page
(https://customers.osisoft.com/s/contactus) for additional assistance.

Issues with COM connectors


Note:
COM connectors will no longer function starting with PI Data Archive 2018 SP3 Patch 1.
To migrate your COM connectors prior to upgrading from an earlier version of PI Data
Archive, contact OSIsoft Technical Support for assistance (see the OSIsoft Customer
Portal Contact Us page (https://customers.osisoft.com/s/contactus)).

Pending update limit


The MaxUpdateQueue parameter sets the maximum number of events per consumer. The
default is 50,000 pending updates per consumer. Similarly, the TotalUpdateQueue parameter
sets the maximum events queued in the entire Update Manager database. The default number
of maximum events is 1,000,000.
If either of these limits is reached, a message is sent to the PI message log. Another message is
sent when the level goes back below 99 percent of the limit and queuing is resumed. Messages
for consumers using less than 0.1 percent of the TotalUpdateQueue limit (100 for the default)
are still queued even when the total limit is reached.
The default value is suitable for most systems, with the following exceptions:

• Increase the value on systems with:


◦ Very large physical memory
◦ High frequency of updates (normally snapshots)
◦ Applications that might retrieve update limits slowly
• If a PINet node or PItoPI interface is connected to the PI Data Archive server, the default
MaxUpdateQueue value is likely to be too small. Increase the value to at least the point
count of the PI Data Archive server. This value ensures that all point updates requested by
PINet can be queued if a system manager performs an edit operation on every point.

PI Data Archive System Management Guide 179


Troubleshooting

180 PI Data Archive System Management Guide


Repairs
Topics in this section
• Repair the archive manager data file
• Archive file corruption
• Correction of archive event time stamps
• Snapshot recovery
• Database repair
• Diagnose and repair PI Data Archive database files
• Recover from accidental system time change

Repair the archive manager data file


The archive manager data file, piarstat.dat, contains the list of archive files known
(registered) to PI Data Archive. If this file is corrupted, you can use the pidiag utility to
rebuild it.
pidiag option Description
-ad Dumps the current piarstat.dat file, which is used to review the data in
the file.
-ar Provides an interactive recovery utility for renaming the old piarstat.dat to
piarstat.old and generating a new one with a single entry (the primary
archive) provided by the user.
-ara Provides an automated recovery utility that renames the old piarstat.dat
to piarstat.old and generates a new one with all of the entries found in
the original file. Any errors will cause the automated version to abort, and
you must resort to the interactive version.

Procedure
1. Copy the piarstat.dat file to a temporary location. Do not overwrite the original file.
Rename the file in case you need it later.
2. Stop the PI Data Archive server.
3. Run the pidiag -ad command, collect the dump of the piarstat.dat file, and verify the
output.
4. If the results of the dump look normal, attempt the automated recovery. Otherwise, use the
interactive one.
5. Restart the PI Data Archive server.
6. Check the message log to see if all archives are loaded. If the interactive version is used, only
the primary archive is loaded.
7. Register any remaining historical and future archives. If the interactive version was used, all
other archives must be registered.

PI Data Archive System Management Guide 181


Repairs

Archive file corruption


Archive files have a header and a record structure. The records include data and auxiliary
information to index the records and to link the records together for fast data access.
All data is susceptible to corruption if a system failure such as a power outage occurs. When
archive file corruption occurs and the file becomes unreadable, it is important to recover the
file to the most complete state possible.
Use the offline archive utility piarchss to recover the data and rebuild the archive header and
its associated metadata.

Topics in this section


• Recovery of a non-primary archive
• Recover a primary archive

Recovery of a non-primary archive


To recover the data from a corrupted non-primary archive, run piarchss, specifying the
corrupted archive as the input file and a non-existing file as the output file. By default, the start
and end times of the input archive are used as the start and end times of the newly created
output archive.
It is possible to recover the data in a non-primary archive while PI Data Archive is still
archiving data. The offline archive utility unregisters the archive during the recovery operation.
Here is an example command to recover a non-primary archive:
$ ../bin/piarchss -if /export/PI/dat/piarch.001 -of piarch1.fix -f 0
...First pass...
...Sorting input archive...
...Output pass...
676 Loaded in 2( 1 + 1 ) Seconds 338 Event/Sec.
739 Archive Total seconds - ratio: 369

In this example, the piarch1.fix file does not exist prior to the operation. It is created as a
fixed archive the same size as the input archive because the -f 0 option was specified. After it
is created, it can be registered using the piartool -ar command, and then data events can be
added to the archive in the usual way.
If the input file is registered prior to the recovery, it is unregistered during the operation. You
must register the input file when the recovery is complete.

Recover a primary archive


PI Data Archive cannot archive data during the recovery process if the corrupted archive is the
primary archive. Because a primary archive cannot be unregistered, to recover it you must
either:

• Stop PI Archive Subsystem


• Force a shift so that the archive is no longer the primary archive
To force a shift, use the piartool -fs command.

182 PI Data Archive System Management Guide


Repairs

Procedure
1. Stop PI Archive Subsystem.
2. Run piarchss and specify the parameters:
◦ Output archive is fixed size (-f 0)
◦ End time left open (-oet Primary)
3. After recovery:
a. Rename the old primary archive.
b. Rename the output file to the same path and filename of the original primary archive.
c. Restart PI Archive Subsystem.

Example of primary archive recovery


In this example, the Failed to unregister input archive message may be ignored. It
occurs because PI archive subsystem was stopped prior to recovery.
$ ../bin/piarchss -if /export/PI/dat/piarch.005 -of piarch.005.fix
-f 0 -oet 0
...First pass...
...Sorting input archive...
Failed to unregister input archive: [-10733] PINET: RPC Resolver is Off-Line
Archive utility not running - or archive not registered
Continue processing...
...Output pass...
1084 Loaded in 2( 0 + 2 ) Seconds 542 Event/Sec.
1038 Archive Total seconds - ratio: 519

In this example, the piarch.005.fix file does not exist prior to the operation. It is created as
a fixed archive the same size as the input archive because the -f 0 option was specified. The
end time of the output archive is left open because the -oet 0 option was specified.

Correction of archive event time stamps


Offline archive processing with time transformation differs little from standard offline archive
processing. All arguments, such as input file and output file, must be specified. Additional
arguments specify time transformation behavior. The additional arguments are:
-tfix time_conversion_file [-tfixend time -oeendtime time]

The argument -tfix followed by full file specification is required. The arguments tfixend
and oeendtime are optional.
The first option, -tfixend, followed by a time stamp specifies the time to perform no
transformations. All events with time stamps greater than or equal to this time are not
transformed.
This option is used when only a portion of the archive has incorrect event time stamps. For
example, if a PI System was run for a period with incorrect system clock setting, then the clock
was set correctly and run for some period before applying a time transformation fix.
The second option, -oeendtime, followed by a time stamp specifies a time stamp to set as the
archive end time when conversion is complete. The archive end time is set to the passed value
if all events are older than this time; otherwise, the end time is set to the time of the oldest
archive event.

PI Data Archive System Management Guide 183


Repairs

Time conversion file format


The time conversion file is an ASCII file containing a list of time-stamp/offset pairs. The time
stamp and offset are separated with a comma. Lines beginning with #, and empty lines and
white spaces are ignored.
The time stamp may be a local time string in PI time format; either a fixed time in the format
dd-mmm-yy hh:mm:ss or a reference time, such as *-300d or *. Only one time-stamp format
can be used in a given file. The first format encountered is assumed for all time stamps.
The offset is the number of seconds to add to the event time stamps. Sub-second precision of
the time shift is not supported. The offset is applied to all events with time stamps greater than
or equal to specified time stamp but less than next time stamp in the conversion file.

Example 1
The following example uses UTC seconds time format. The time stamp 0 is January 1, 1970, and
the time stamp 2000000000 is well into the 21st century. The offset is a positive 3600 (one
hour).
Therefore this data file will simply move all events ahead by one hour.
# Example 1, Moves entire archive ahead by 1 hour
0,3600
2000000000,3600

Example 2
Similar to the first example, this example uses local time stamps to specify a suitably large time
range to cover all events. The offset is -3600. This data file will move all events back by one
hour.
# Example 2, Also moves entire archive back by 1 hour
01-Jan-70 00:00:00,-3600
01-Jan-30 00:00:00,-3600

Example 3
This example applies a missed DST conversion for the Northern Hemisphere summer of 2003.
The first time stamp is set at 01-Jan-03 to include all events up to the DST transition; no offset
is applied up to, but not including 06-Apr-03 02:00:00. From 06-Apr-03 02:00:00 up to, but not
including, 26-Oct-03 02:00:00 one hour is added to all events. No offset is applied from 26-
Oct-03 02:00:00 to current time.
# Example 3, Applies a missed dst conversion to an
# archive that covers summer of 2003
01-Jan-03 00:00:00,0
06-Apr-03 02:00:00,3600
26-Oct-03 02:00:00,0
31-Dec-03 23:59:59,0

Snapshot recovery
There are two types of possible damage to the snapshot from which PI Data Archive can
recover:

• Snapshot times in the future. Accidentally moving the PI Data Archive system time into the
future can cause this; at a minimum all points collected locally will be in the future.
Snapshot events are replaced when a newer value is received; therefore these events remain

184 PI Data Archive System Management Guide


Repairs

in the snapshot until actual time catches up. Events earlier than snapshot time bypass
compression. Events that bypass compression can put a large load on PI Data Archive.
• Damaged or corrupted snapshot file (piarcmem.dat). Corruption may be caused by disk or
power failures.

Topics in this section


• Recover from future times in the snapshot
• Rebuild the snapshot file
• Removal of future-time snapshots

Recover from future times in the snapshot


Procedure
1. Stop PI Snapshot Subsystem (the pisnapss process) on a running PI Data Archive server.
2. Restart PI Snapshot Subsystem from a command prompt and pass the -f argument:
pisnapss -f
This must be done interactively, not as a Windows service. On startup, PI Snapshot
Subsystem looks for all snapshots more than 20 minutes in the future. These future
snapshots are overwritten with a NULL value. PI Snapshot Subsystem reports the number of
future events detected to the message log. If no future snapshots were detected, no fix
messages are written to the message log. New incoming data immediately overwrites the
NULL snapshot, even if the incoming value is out of order.
PI Snapshot Subsystem continues to run normally after the fix.
3. Press Ctrl+C in the interactive pisnapss process and restart it as a service.
Note:
Snapshots fixed by this procedure remain set to NULL until a new snapshot event
arrives. A NULL snapshot value is replaced by any new event that is received for a
point, even if the event is an out-of-order event.

Rebuild the snapshot file


If you receive a message that indicates that PI Data Archive is unable to start because the
snapshot file, piarcmem.dat or piarcmem_1.dat, cannot be loaded, generate a new snapshot
file. A rebuilt snapshot file contains events based on the point database and, in some cases,
digital states of SnapFix. The rebuilt snapshot is updated as the PI System receives new data.
Note:
If the piarcmem.dat or piarcmem_1.dat file is damaged, contact OSIsoft Technical
Support for assistance with this procedure.

Procedure
1. Shut down PI Base Subsystem, PI Archive Subsystem, and PI Snapshot Subsystem.
2. At a command prompt, go to the PI\bin directory and type:
pibasess -snapfix [parameters]

As needed, you can enter these additional parameters:

PI Data Archive System Management Guide 185


Repairs

Parameter Description
-file [filename] You cannot use this option with the -directory parameter.
Provides the full file name of an input file to use in place of the
default snapshot file, located in %PISERVER%\dat.
If filename refers to piarcmem_1.dat, this command processes
the file as a future snapshot file; otherwise it processes the file as
the historical snapshot file.
In both cases, the command implicitly processes the snapshot file
for the other set (future or historical) using the piarcmem*.dat
file in the default %PISERVER%\dat\ location. If you want to
explicitly process two files from a single directory, consider using
the -directory parameter.
Enter a filename only if you have a file that you want your new
piarcmem.dat file to be built from. To rebuild the snapshot file
based on the most current values in the snapshot, do not enter a
filename.
If a piarcmem.dat file exists, PI Base Subsystem renames the
piarcmem.dat file that contains the current snapshot values to
DD_MON_YY_piarcmem.dat. Then it builds a new piarcmem.dat
file from the renamed piarcmem.dat file. If there is no
piarcmem.dat file, a new file is created.

-directory directory This option cannot be used with the -file parameter.
Provides the directory of input files to use instead of the default
%PISERVER%\dat\ location.
To be processed, files in this directory must be named
piarcmem.dat or piarcmem_*.dat.

-ds state Specifies a system digital state that is inserted in the new file. Use
an existing digital state.
-maxtime time Sets the latest time stamp allowed in the snapshot; pisnapss -f
truncates at *+20 minutes. Indicates a time limit beyond which
the prior digital state of events will be replaced with SnapFix, or
the digital state you specify with the state parameter. This
parameter is only applicable to the historical snapshot file.

3. If duplicate points are found, use the ptpurge parameter to remove duplicate points:
pibasess -snapfix -ptpurgepointtopurge

or
pibasess -snapfix -ptpurge filelist

where pointtopurge is a single point, for example mypoint. If you want to use a file that
contains the names of multiple points, use filelist. For example, pointstodelete.dat.
When recovery is complete, PI Base Subsystem writes a final message to the screen and
exits.
4. Restart PI Base Subsystem, PI Archive Subsystem, and PI Snapshot Subsystem.
Current snapshot values are preserved in the rebuilt piarcmem.dat file. Points that have no
previous data use the SnapFix digital state, or the digital state you specify with the state
parameter, until the state is replaced by new snapshot values. Any snapshot record that
does not have a matching point is removed.

186 PI Data Archive System Management Guide


Repairs

Tip:
You can run this snapshot recovery command while PI Data Archive is shut down.

Removal of future-time snapshots


The piconfig utility can be used to remove specific snapshot events. When the snapshot event
is removed, PI Snapshot Subsystem attempts to retrieve the latest archived event from the
archive and replace the snapshot event with it. If there are no events for the point in the
archive, the snapshot is deleted and remains uninitialized until a new snapshot event is sent.
The following example script extracts all the events that are later than 10 minutes past the
current time into a file. Next, using the PIARC table, the script removes all the extracted events
from the snapshot. The last archive event for each tag replaces the snapshot.
piconfig table pisnap
* (Ls - PISNAP) piconfig> @sele tag=*,time>"*+10m"
* (Ls - PISNAP) piconfig> @ostru tag,value,time
* (Ls - PISNAP) piconfig> @sigd 8
* (Ls - PISNAP) piconfig> @output deletesnap.dat
@endsection
@output
* (Ls - PISNAP) piconfig> @table piarc
* (Ls - PIARC) piconfig> @mode ed,t
* (Ed - PIARC) piconfig> @modify mode=remove
* (Ed - PIARC) piconfig> @istru tag,value,time
* (Ed - PIARC) piconfig> @echo v
* (Ed - PIARC) piconfig> @input deletesnap.dat

Any combination of conditions can be used to select the events to be deleted, for example all
tags of a specific interface.
Note:
The significant digit command, @sigd 8, ensures that rounding errors do not cause
values to be missed.

Database repair
If PI Base Subsystem does not start due to a corrupted database, the log shows a message
indicating this. If there is no such message, start PI Base Subsystem in interactive mode and
observe the errors in the window. Database corruption is a relatively rare event. It is usually
due to hardware failure or improper shutdown. To repair all databases:
pibasess -copydb path

For example:
pibasess -copydb \pi\recovereddb

Following this command, the target path contains recovered copies of all the configuration
databases. Corrupted records are eliminated and related messages displayed.
Before you copy the recovered database files back into this directory, make a backup copy of
the \pi\dat\ directory.
After that, PI Base Subsystem should load all databases and work normally. The resulting files
are slightly smaller than the originals as they are compacted in the process.

PI Data Archive System Management Guide 187


Repairs

Repair the PI Module Database


Procedure
1. At a command prompt, go to the PI\bin directory.
2. Type the following command:
pibasess -mdbfix
PI Base Subsystem completes several tasks:
◦ Checks table and index entry count size. The entry counts should be the same.
◦ Removes modules that have a record size of zero. These modules would be
unrecoverable.
◦ Removes parent and children references to non-existent modules.

Diagnose and repair PI Data Archive database files


PI Data Archive stores most of its internal data in files that have a common internal structure,
called a file-base structure. These database files store data in indexed records. PI archive files
are not file-base files, though the corresponding annotation files are file-base files.
This section discusses the tools that you can use to diagnose and repair file-base database files.

Topics in this section


• List the header and index
• Compress a file base file
• Recover file-base file

List the header and index


Before you start
To run this command, you must shut down the subsystem that owns the file.

Procedure
1. In a command line window, change to the PI\adm directory.
2. Type:
pidiag -fb path [-header | -dv]
where path is the complete path of the file.
Use the -header option to list only the header (no index). Use the -dv option to display
only the file’s version.
If the command returns an error, see Recover file-base file to fix the error.
With the header information, OSIsoft Technical Support can determine if there are any errors
in the structure of the file:

188 PI Data Archive System Management Guide


Repairs

D:\PI\adm>pidiag -fb d:\pi\dat\pidigst.dat -header


PIfilebaseheader[$Workfile: pifile.cxx $ $Revision: 125 $]::
File Name: D:\PI\dat\pidigst.dat
Major Version: 4
Minor Version: 0
Byte Alignment: 1
Directory Location: 1024
Directory Size: 1024
Record Count: 18
Last Recno: 0
Maximum Recno: 128
User Block Size: 512
Data Location: 2048
Data Size: 23325
Auto Compact %: 0
Last Modified: 10-Sep-09 09:45:11
Backup Time: 25-Aug-09 14:26:11
PIsecureobject[$Workfile: pisecobj.cxx $ $Revision: 46 $]::
ACL ID: 1 [ 1:A(r,w)|5:A(r)|2:A(r) ]
% unused: 0

Compress a file base file


If a file has more than 10 percent of unused space, you can compress the file to save disk space.

Before you start


To run this command, you must shut down the subsystem that owns the file.

Procedure
1. Find the percentage of unused space in a file. See List the header and index.
2. In a command line window, change to the PI\adm directory
3. Type:
pidiag -fbcpath [-header]
where path is the complete path of the file.
Use the -header option to list only the header.

Recover file-base file


When a file-base file has a corrupted index or inaccessible or corrupted records, you can
recover the file. Use this procedure to recover readable data records from a file-base file and
rebuild the index.
Note:
When recovering files, this command discards unreadable records and prints an error
message. Only use this tool at the direction of OSIsoft Technical Support.

Procedure
1. In a command prompt window, change to the PI\adm directory
2. Type:
pidiag -fbf
inpath outpath

PI Data Archive System Management Guide 189


Repairs

[alignment] [-compress] [-header]

with the following options:


Option Description
inpath Path and name of input file.
outpath Path and name of output file.
alignment Optional. Sets the byte alignment in the output file. A value of 0 or 1 lets the file
grow to 2GB. Higher values let the file grow to 2GB times the specified value. For
example, with an alignment of 2, the file can grow to 4GB, and with an alignment
of 4, the file can grow to 8GB.
-compress Optional. Removes unused records at the end of the file and allocates unused
disk space.
-header Optional. Displays only the header of the new file rather than both the header
and index of the new file after recovery.

Results
In some cases, pidiag -fbf reports the following:
Error reading input record # nn [-10466] No Record Available for Passed recno

This is normal for records between the actual last record and the maximum allocated record.
The warning disappears if you run the utility a second time.

Recover from accidental system time change


PI Data Archive automatically handles all changes to system time. OSIsoft recommends that
you never manually change the system time. On Windows, always use the automatic DST
option.
However, occasionally such changes are required and these change might lead to human errors.
For example, instead of moving the clock to 2 a.m. it is moved to 2 p.m. Time synchronization
software, designed to keep computer clocks accurate without error-prone human intervention,
have also been implicated in moving system clocks erroneously. As a result, the events are
recorded in the future. Usually this is discovered after many of these events were already
stored in the archive.

Procedure
1. Stop the PI System.
2. Correct the system time and the time on all connected nodes.
Note:
If you are using PI Buffer Subsystem to buffer data from PI interfaces, see Recover
from accidental time change at interface node that uses PI Buffer Subsystem.
3. Isolate the PI Data Archive server from interface nodes. The best technique is to disconnect
the server from the network. During this time, allow the data to buffer until the system is
verified up and running normally.
4. Rename the event queue file, pimapevq.dat, for later processing. The event queue may
contain many future events. Rename the following files located in the dat directory:

190 PI Data Archive System Management Guide


Repairs

◦ pilastsnap.dat
◦ pilasttot_T.dat
◦ pilastalarm.dat
5. Create an empty archive file using PI SMT or the piarcreateutility.
6. Type pidiag -ar and register only the new empty archive.
7. There are two options for fixing the snapshot:
◦ If the erroneous future data can be discarded, start PI Snapshot Subsystem with -f flag
as described in Recover from future times in the snapshot.
◦ Otherwise, keep the current file, and after the system startup, delete or edit individual
values using the piconfig utility, as explained above.
8. Start the PI Data Archive server in base mode:
pisrvstart -base

This starts only the minimum required subsystems: PI Network Manager, PI Message
Subsystem, PI License Manager, PI Update Manager, PI Snapshot Subsystem, PI Archive
Subsystem, and PI Base Subsystem.
9. Register all the old archive files except for the previous primary, which contains future data.
10. Examine the unregistered archive file header to confirm the time boundaries of the various
archives involved before using offline archive processing to merge archives:
a. To look at the header of an unregistered archive:
pidiag -ahd
b. To look at registered archives:
piartool -al
11. Create a new primary archive using the piartool -ac command.
a. Specify a start time before any events that might be coming in. Specify the end-time as *.
This instructs PI Archive Subsystem to register the new archive as primary archive. The
start time specified must account for all buffered data. If you are unsure, set the start
time well before the time the problem was first encountered.
b. If necessary, use offline archive processing later to merge this data with existing archives.
12. Verify that the PI System is running correctly. Reconnect the server to the network.
13. Reprocess the old primary archive using the offline tool to filter out the future data, or
correct the archive's time by the required difference.
14. Reprocess the event queue into an archive file and correct time stamps as required.
15. If desired, combine two archives: the old primary and the result of the event queue.
16. Register the corrected archive file.

Recover from accidental time change at interface node that uses PI Buffer
Subsystem
If the time stamp on an interface node were changed to a future time stamp and that node uses
PI Buffer Subsystem, you must complete additional steps.

PI Data Archive System Management Guide 191


Repairs

Procedure
1. Stop PI Buffer Subsystem.
2. Stop the interface nodes.
3. Delete the pibufmem.dat file.
4. Restart PI Buffer Subsystem.
5. Restart the interface nodes.

192 PI Data Archive System Management Guide


Technical support and other resources
For technical assistance, contact OSIsoft Technical Support at +1 510-297-5828 or through the
OSIsoft Customer Portal Contact Us page (https://customers.osisoft.com/s/contactus). The
Contact Us page offers additional contact options for customers outside of the United States.
When you contact OSIsoft Technical Support, be prepared to provide this information:
• Product name, version, and build numbers
• Details about your computer platform (CPU type, operating system, and version number)
• Time that the difficulty started
• Log files at that time
• Details of any environment changes prior to the start of the issue
• Summary of the issue, including any relevant log files during the time the issue occurred
To ask questions of others who use OSIsoft software, join the OSIsoft user community,
PI Square (https://pisquare.osisoft.com). Members of the community can request advice and
share ideas about the PI System. The PI Developers Club space within PI Square offers
resources to help you with the programming and integration of OSIsoft products.

PI Data Archive System Management Guide 193


Technical support and other resources

194 PI Data Archive System Management Guide

You might also like